Re: Clojure as a first programming language?

2016-12-05 Thread Colin Fleming
On 5 December 2016 at 02:56, 'Lee Spector' via Clojure <
clojure@googlegroups.com> wrote:

Colin Fleming has done some nice work on this in Cursive.
>

Sadly that work is not in Cursive proper yet, although I'm planning to get
it in there soon once I work out what I'm doing with spec.

However I think macro errors are only a part of what Nathan is asking for.
It's true that they cause some of the more confusing stacktraces, but there
are other errors which cause stack traces but which are really compiler
errors. I've been considering some kind of pattern matching system to try
to work out from a stacktrace what the problem really is. After all,
experienced Clojure developers can often work out easily what the issue is
from a stacktrace, so I'm sure a machine can too. However although I'm
considering this, I don't have it at the proof of concept stage yet.


> ... I am currently planning to revisit Proto REPL (in Atom), following a
> nice talk on it by Jason Gilman at Clojure Conj 2016:
> https://www.youtube.com/watch?v=buPPGxOnBnk


I agree, that talk was great and Proto REPL looks lovely. I think it would
probably be a great match for your needs.

Cheers,
Colin




>
>  -Lee
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Clojure as a first programming language?

2016-12-04 Thread 'Lee Spector' via Clojure
> On Dec 4, 2016, at 7:17 PM, Nathan Smutz  wrote:
> I've heard there have been some attempts at error-mesaage translators.  Does 
> anyone have a recommendation?

Colin Fleming has done some nice work on this in Cursive. 

He gave a talk on it at Clojure Conj 2015: 
https://www.youtube.com/watch?v=kt4haSH2xcs

> If you're new to tooling, and want to try Clojure right away, I strongly 
> recomend Oakes' Nightcode.  [...] beginner-friendly parenthesis management 
> [...]

Nightcode used to be my recommendation for total newbies, and I used it in my 
courses to teach beginners. But in the current versions of Nightcode, parinfer 
is always on, which in my opinionated opinion is the antithesis of 
beginner-friendly parenthesis management. It is wonderfully clever and some 
people love it, but in my experience it's not at all beginner-friendly to 
interfere with the student's existing typing skills and expectations in the way 
that paredit does, or especially in the way that parinfer does.

I spend a fair bit of time evaluating and re-evaluating clojure environment 
options for new programmers. There are a bunch of really great tools out there, 
but from my perspective none of them currently quite nails all of the 
requirements in this area. FWIW my currently favored approach is to use a 
modified version of Gorilla REPL: 
https://groups.google.com/d/msg/clojure/Rqsc8j3rJS8/ehAw4ut4BwAJ. But I am 
always on the hunt for better alternatives, and I am currently planning to 
revisit Proto REPL (in Atom), following a nice talk on it by Jason Gilman at 
Clojure Conj 2016: https://www.youtube.com/watch?v=buPPGxOnBnk

 -Lee

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Clojure as a first programming language?

2016-12-04 Thread Nathan Smutz
If you're new to tooling, and want to try Clojure right away, I strongly 
recomend Oakes' Nightcode.  Install the JDK and Nightcode, and you'll have 
Clojure with its popular build tools (Leiningen and Boot) built in, 
beginner-friendly parenthesis management, LightTable-like instant evaluation in 
the margins, and a connected REPL when you run your project.
https://sekao.net/nightcode/

Stack-vomit error messages are the main reason I'd have to think hard before 
recommending Clojure as a first/educational language.  
Apart from the clarity of the smidge of relevant info in there, there's the 
aggravation of having to stop thinking about your problem to play Where's 
Waldo, the Line-Number Edition.

I've heard there have been some attempts at error-mesaage translators.  Does 
anyone have a recommendation?

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Clojure as a first programming language?

2016-12-01 Thread Ryan Waters
It's a question simply stated with an answer that depends on a lot of
things. And, as is often the case with the person giving an answer, without
asking other people I can only relate it to my own experiences with clojure
and programming in general.

The fun and freeing thing about clojure is the flexible ways it allows you
to program and think about programming challenges.  There's a number of
reasons that make this true.  Languages I've used in the past at times felt
like their design was limiting, usually in the form of making easy things
easy and hard things harder than necessary.  Maybe they provided too much
"help" and turned inner workings into a difficult-to-know black box, or
they provided concurrency building blocks without providing a safe
framework to prevent a novice programmer from shooting themselves in the
foot, or they were designed in such a way that locking in developer
mindshare was a primary motivator.  I don't think clojure has these
problems.

Diving into a new language requires good learning resources, particularly
in the ways you find most natural to use.  Are you self-sufficient?  Is
documentation enough or would it be faster and more useful to be able to
ask someone questions?  Do you have any higher education in programming?
Buy some clojure books and spend time with them.  The mailing list, IRC and
slack, et. al. can all be resources for specific questions but more general
questions (even this one) can be more difficult to answer.

Pick something you want to make and explore what different languages have
to offer and you'll naturally find one that resonates with you.  I love
clojure.  It's not perfect but it's still smarter than I am, which I
appreciate.  It rarely gets in my way.



On Thu, Dec 1, 2016 at 12:22 PM, Nur Azhar <ssh.nur.az...@gmail.com> wrote:

> Hi,
>
> it's almost 8 years later and I am going to ask these same question since
> it wasn't really answered
>
> Thanks for taking the time to read. I’m interested in trying out Clojure
>> for my first programming language--at least, the first programming language
>> in which I intend to commit myself to becoming proficient.
>> http://stackoverflow.com/questions/10509283/clojure-as-
>> a-first-programming-language
>>
> I hope someone replies
>
> On Tuesday, December 1, 2009 at 1:38:58 PM UTC+8, Towle wrote:
>>
>> Hi all,
>>
>> Thanks for taking the time to read my post. I'm interested to get some
>> opinions from experienced Clojure programmers on whether the language
>> would be a good first language to learn, or rather to learn in-depth.
>> I have minimal experienced with more common languages like Java, HTML,
>> and C++, but having the personality I do, felt compelled to shop
>> around a bit before choosing a first language to learn seriously on a
>> deep and intuitive level-- perhaps my odd notion of there being a
>> connection between a programmer and the first language s/he
>> understands on that high of a level. So after shopping around
>> thoroughly and picking up bits about on theoretical computer science
>> and the history of programming languages, I decided to pick up a Lisp;
>> I'm intrigued by the greater concept/idea behind the Lisp family of
>> languages.
>>
>> After a long while trying to figure out which of the Lisps would be a
>> good first choice, I stumbled across Clojure and immediately thought
>> it a brilliant idea, conceding of course that at my current level of
>> knowledge, I likely have no idea what a brilliant idea in computer
>> programming looks like. Regardless, it still feels brilliant.
>>
>> As I see it, among other features of the language, the idea of a Lisp
>> designed to be a capable choice for "real-world" code applications,
>> that is a Lisp which embodies the spirit of that family of languages
>> yet one which resolves many of the "practicality" complaints which
>> stand as hurdles on a Lisp's path to real-world use. For my situation,
>> that of a student who wants both a) to learn a first language I can
>> have a real, intellectual appreciation for and b) to begin the journey
>> to "expertise" in a language it would be practical to code web
>> applications in.
>>
>> So, Clojure programmers, am I wrong? Should I pass on Clojure in favor
>> of another langauge? Or learn Common Lisp or Scheme first, then try my
>> hand at Clojure? Am I mistaken for a different reason? Or perhaps
>> there are some criteria I should consider before diving in?
>>
>> Thanks in advance, and again for taking the time to read.
>> --Towle
>>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
>

Re: Clojure as a first programming language?

2016-12-01 Thread Nur Azhar
Hi,

it's almost 8 years later and I am going to ask these same question since 
it wasn't really answered

Thanks for taking the time to read. I’m interested in trying out Clojure 
> for my first programming language--at least, the first programming language 
> in which I intend to commit myself to becoming proficient.
>
> http://stackoverflow.com/questions/10509283/clojure-as-a-first-programming-language
>
I hope someone replies

On Tuesday, December 1, 2009 at 1:38:58 PM UTC+8, Towle wrote:
>
> Hi all, 
>
> Thanks for taking the time to read my post. I'm interested to get some 
> opinions from experienced Clojure programmers on whether the language 
> would be a good first language to learn, or rather to learn in-depth. 
> I have minimal experienced with more common languages like Java, HTML, 
> and C++, but having the personality I do, felt compelled to shop 
> around a bit before choosing a first language to learn seriously on a 
> deep and intuitive level-- perhaps my odd notion of there being a 
> connection between a programmer and the first language s/he 
> understands on that high of a level. So after shopping around 
> thoroughly and picking up bits about on theoretical computer science 
> and the history of programming languages, I decided to pick up a Lisp; 
> I'm intrigued by the greater concept/idea behind the Lisp family of 
> languages. 
>
> After a long while trying to figure out which of the Lisps would be a 
> good first choice, I stumbled across Clojure and immediately thought 
> it a brilliant idea, conceding of course that at my current level of 
> knowledge, I likely have no idea what a brilliant idea in computer 
> programming looks like. Regardless, it still feels brilliant. 
>
> As I see it, among other features of the language, the idea of a Lisp 
> designed to be a capable choice for "real-world" code applications, 
> that is a Lisp which embodies the spirit of that family of languages 
> yet one which resolves many of the "practicality" complaints which 
> stand as hurdles on a Lisp's path to real-world use. For my situation, 
> that of a student who wants both a) to learn a first language I can 
> have a real, intellectual appreciation for and b) to begin the journey 
> to "expertise" in a language it would be practical to code web 
> applications in. 
>
> So, Clojure programmers, am I wrong? Should I pass on Clojure in favor 
> of another langauge? Or learn Common Lisp or Scheme first, then try my 
> hand at Clojure? Am I mistaken for a different reason? Or perhaps 
> there are some criteria I should consider before diving in? 
>
> Thanks in advance, and again for taking the time to read. 
> --Towle 
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Clojure as a first programming language?

2009-12-01 Thread Towle
Hi all,

Thanks for taking the time to read my post. I'm interested to get some
opinions from experienced Clojure programmers on whether the language
would be a good first language to learn, or rather to learn in-depth.
I have minimal experienced with more common languages like Java, HTML,
and C++, but having the personality I do, felt compelled to shop
around a bit before choosing a first language to learn seriously on a
deep and intuitive level-- perhaps my odd notion of there being a
connection between a programmer and the first language s/he
understands on that high of a level. So after shopping around
thoroughly and picking up bits about on theoretical computer science
and the history of programming languages, I decided to pick up a Lisp;
I'm intrigued by the greater concept/idea behind the Lisp family of
languages.

After a long while trying to figure out which of the Lisps would be a
good first choice, I stumbled across Clojure and immediately thought
it a brilliant idea, conceding of course that at my current level of
knowledge, I likely have no idea what a brilliant idea in computer
programming looks like. Regardless, it still feels brilliant.

As I see it, among other features of the language, the idea of a Lisp
designed to be a capable choice for real-world code applications,
that is a Lisp which embodies the spirit of that family of languages
yet one which resolves many of the practicality complaints which
stand as hurdles on a Lisp's path to real-world use. For my situation,
that of a student who wants both a) to learn a first language I can
have a real, intellectual appreciation for and b) to begin the journey
to expertise in a language it would be practical to code web
applications in.

So, Clojure programmers, am I wrong? Should I pass on Clojure in favor
of another langauge? Or learn Common Lisp or Scheme first, then try my
hand at Clojure? Am I mistaken for a different reason? Or perhaps
there are some criteria I should consider before diving in?

Thanks in advance, and again for taking the time to read.
--Towle

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en


Re: Clojure as a first programming language?

2009-12-01 Thread Adrian Cuthbertson
Hi Towle,

Judging by the articulateness of your post, I would say that Clojure
would definitely be an ideal language for what you are looking for. It
is not handed to you on a plate and you will have to engage deeply
to achieve your goals, but if you do so, along with the increasingly
prolific documentation available, the archives of this forum and the
on-going posts here, you will be able to learn and apply just about
any technique that has ever been addressed regarding advanced
programming, best computer science practices and very practical
applications.

- Regards, Adrian.

On Tue, Dec 1, 2009 at 7:38 AM, Towle towle.m...@gmail.com wrote:
 Hi all,

 Thanks for taking the time to read my post. I'm interested to get some
 opinions from experienced Clojure programmers on whether the language
 would be a good first language to learn, or rather to learn in-depth.
 I have minimal experienced with more common languages like Java, HTML,
 and C++, but having the personality I do, felt compelled to shop
 around a bit before choosing a first language to learn seriously on a
 deep and intuitive level-- perhaps my odd notion of there being a
 connection between a programmer and the first language s/he
 understands on that high of a level. So after shopping around
 thoroughly and picking up bits about on theoretical computer science
 and the history of programming languages, I decided to pick up a Lisp;
 I'm intrigued by the greater concept/idea behind the Lisp family of
 languages.

 After a long while trying to figure out which of the Lisps would be a
 good first choice, I stumbled across Clojure and immediately thought
 it a brilliant idea, conceding of course that at my current level of
 knowledge, I likely have no idea what a brilliant idea in computer
 programming looks like. Regardless, it still feels brilliant.

 As I see it, among other features of the language, the idea of a Lisp
 designed to be a capable choice for real-world code applications,
 that is a Lisp which embodies the spirit of that family of languages
 yet one which resolves many of the practicality complaints which
 stand as hurdles on a Lisp's path to real-world use. For my situation,
 that of a student who wants both a) to learn a first language I can
 have a real, intellectual appreciation for and b) to begin the journey
 to expertise in a language it would be practical to code web
 applications in.

 So, Clojure programmers, am I wrong? Should I pass on Clojure in favor
 of another langauge? Or learn Common Lisp or Scheme first, then try my
 hand at Clojure? Am I mistaken for a different reason? Or perhaps
 there are some criteria I should consider before diving in?

 Thanks in advance, and again for taking the time to read.
 --Towle

 --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.com
 Note that posts from new members are moderated - please be patient with your 
 first post.
 To unsubscribe from this group, send email to
 clojure+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en


Re: Clojure as a first programming language?

2009-12-01 Thread Geoffrey Teale
Hi,

I don't post here much and so you may see that as a reason to discount 
what I say.  Infact that would probably be a good plan.   I generally 
talk a load of twaddle.  With those caveats firmly in mind here's my 
tuppence worth.

I'd hate to think your first language is defining as you suggest.  I, 
like most people of my age, wrote mostly BASIC and assembly code for the 
first five or six years of my programming experience.  In my case that 
was all for the Zilog Z80 and later the  Motorola 68000.   While I have 
fond memories of those times I generally wouldn't want to go back to 
those languages or tools, and most of my work exhibits a functional 
style that is far from idiomatic for the average BASIC or assembler 
programmer.I suspect that what Clojure programmers have in common is 
not their programming roots, but the openness of their minds and a 
desire to continuously learn and improve.   A large number of 
programmers learn one language and then try desperately to avoid 
learning anything else.   Another group are keen only to learn new 
skills they think are marketable (they tend to be the ones who are 
always begging to go on the latest training course in Microsoft this or 
Oracle that in my experience).   I would tell you to avoid being in 
those groups, but I think it's useless - you will develop in accordance 
to your character.  That you are here is probably a good sign though.

So.. back to your actual question.  Here's my thoughts.  Clojure is a 
relatively young language and there's still a lot about the landscape 
that is evolving.This in turn means that some things are hard to 
work out, and only documented in the most superficial way.   This is 
both a joy (after all you need a challenge!) and occasionally a pain in 
the bum.   In fact it is quite reminiscent of those days of assembly 
programming I had back in the 1980s.  Whether this is something you want 
in your life only you can tell, and perhaps the answer is too try.   
Prepare to be frustrated and prepare to get good at asking questions - 
two elements that are unavoidable in life, so why not practise!  If you 
think you have the interest and the will power to get through those 
things then Clojure would indeed be an excellent place to throw your hat 
into the ring.

Before you dive in there are some other aspects to consider.  Although 
there are new libraries being written all the time, it is not at all 
uncommon to drop directly into the world of Java libraries when doing 
productive work in Clojure.  This is a great strength of Clojure and 
also a weakness.  Dropping into Java space can make it harder to realise 
the benefits that Clojure offers.   There also a danger that, in order 
to get things done, what you'll end up learning is the java libraries, 
not the idiomatic Clojure way of doing things.   Furthermore Clojure 
inherits some of the complexities of Java.   The word CLASSPATH could 
easily haunt you for the rest of your life.   There are easier 
environments to work in!

So I guess the answer is this: if you're looking to get the most from 
Clojure as a language the first step might be to become proficient as a 
functional programmer - if you get there then the way Clojure does 
things will mostly just make sense.   In terms of the materials 
available to you a better language to learn functional programming in 
might be Haskell, or if it really must be a Lisp (which is certainly not 
a bad idea!) then I would look to Scheme.  Then, armed with that 
knowledge come back to Clojure.

Now, please forget everything I just told you and go out and make your 
own mistakes - it's the only way to learn!

-- 
Geoff Teale

On 12/01/2009 06:38 AM, Towle wrote:
 Hi all,

 Thanks for taking the time to read my post. I'm interested to get some
 opinions from experienced Clojure programmers on whether the language
 would be a good first language to learn, or rather to learn in-depth.
 I have minimal experienced with more common languages like Java, HTML,
 and C++, but having the personality I do, felt compelled to shop
 around a bit before choosing a first language to learn seriously on a
 deep and intuitive level-- perhaps my odd notion of there being a
 connection between a programmer and the first language s/he
 understands on that high of a level. So after shopping around
 thoroughly and picking up bits about on theoretical computer science
 and the history of programming languages, I decided to pick up a Lisp;
 I'm intrigued by the greater concept/idea behind the Lisp family of
 languages.

 After a long while trying to figure out which of the Lisps would be a
 good first choice, I stumbled across Clojure and immediately thought
 it a brilliant idea, conceding of course that at my current level of
 knowledge, I likely have no idea what a brilliant idea in computer
 programming looks like. Regardless, it still feels brilliant.

 As I see it, among other features of the language, the idea of a Lisp
 designed to 

Re: Clojure as a first programming language?

2009-12-01 Thread Tayssir John Gabbour
Hi,

As an occasional Clojure user, and someone who's used Common Lisp a
lot, I'd venture that Clojure is a good first choice. But let me
metion areas of difficulty first. Geoffrey Teale discussed the big
things, so let me mention some little ones:

- Java's classpath currently demands that you respect its
inflexibility. If you have a problem with a library which seems to
work for everyone else, the classpath is a big thing to check.

(Clojure's add-classpath should increase its flexibility. But people
aren't supposed to depend on it; and I noticed it interacts weirdly
with Java's database manager, JDBC. Last week, JDBC promised it knew
of my MySQL lib which I loaded using add-classpath; but when it came
time to actually pull data, it complained that it didn't have the
library loaded.)

- Also, Java prioritizes security over usability. Which I also
recently ran into:
http://my.opera.com/karmazilla/blog/how-to-grab-the-certificate-from-
a-website-and-import-it-with-java-keytool

That said, I would've been best served by learning Clojure or Common
Lisp first. (Or flexible ancestors like Lisp Machine lisp. Not Scheme
though.) Due to whatever quirks in my personality. For me, Clojure can
be engrossing like a good video game; I'm not always happy (maybe I'm
coasting along and then the big boss kills me a few times, and I have
to figure out how to defeat or bypass it), but it's at least not
unnecessarily boring.

In addition to the all-important video game metric, you get to interop
with the normal world through Java/.net/etc, and I'm sure you'll meet
with the approval of at least some theoreticians. Clojure may also
help you evaluate other languages better.

There's some advantages Common Lisp holds over Clojure (and vice-
versa), but the ones most important to me are dwindling. For instance,
CL's multimethods have really nice features. I use them regularly for
web programming. However, Mikel Evins is releasing an interesting
Clojure library for this called Categories. (Not that I know much
about it.)
http://mikelevins.livejournal.com/


Hope this helps,
Tayssir


On Dec 1, 6:38 am, Towle towle.m...@gmail.com wrote:
 Hi all,

 Thanks for taking the time to read my post. I'm interested to get some
 opinions from experienced Clojure programmers on whether the language
 would be a good first language to learn, or rather to learn in-depth.
 I have minimal experienced with more common languages like Java, HTML,
 and C++, but having the personality I do, felt compelled to shop
 around a bit before choosing a first language to learn seriously on a
 deep and intuitive level-- perhaps my odd notion of there being a
 connection between a programmer and the first language s/he
 understands on that high of a level. So after shopping around
 thoroughly and picking up bits about on theoretical computer science
 and the history of programming languages, I decided to pick up a Lisp;
 I'm intrigued by the greater concept/idea behind the Lisp family of
 languages.

 After a long while trying to figure out which of the Lisps would be a
 good first choice, I stumbled across Clojure and immediately thought
 it a brilliant idea, conceding of course that at my current level of
 knowledge, I likely have no idea what a brilliant idea in computer
 programming looks like. Regardless, it still feels brilliant.

 As I see it, among other features of the language, the idea of a Lisp
 designed to be a capable choice for real-world code applications,
 that is a Lisp which embodies the spirit of that family of languages
 yet one which resolves many of the practicality complaints which
 stand as hurdles on a Lisp's path to real-world use. For my situation,
 that of a student who wants both a) to learn a first language I can
 have a real, intellectual appreciation for and b) to begin the journey
 to expertise in a language it would be practical to code web
 applications in.

 So, Clojure programmers, am I wrong? Should I pass on Clojure in favor
 of another langauge? Or learn Common Lisp or Scheme first, then try my
 hand at Clojure? Am I mistaken for a different reason? Or perhaps
 there are some criteria I should consider before diving in?

 Thanks in advance, and again for taking the time to read.
 --Towle

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en


Re: Clojure as a first programming language?

2009-12-01 Thread CuppoJava
There are more qualified people than me on these boards, but I can
offer my own personal experience, which is to say, as a first language
I would still recommend going the C/Java/Basic/Assembly route first
before going with a Lisp.

Because simply, I couldn't appreciate functional programming until I
did a fair bit of imperative programming first. And because imperative
programming is closer to the raw machine, I find that reasoning about
functional programming requires, in a lot of instances, to think about
the equivalent code in an imperative language.

For example, why is Laziness a good idea? What are the inherent
limitations of Class-based object-oriented programming? Why is single
inheritance limiting? How can multiple-inheritance come back to haunt
you? What is hanging onto your head? Why does this really elegant
functional code run so slowly? Why is eval a bad idea?

So I think avoiding an imperative language means that there's too much
fundamental understanding about the machine that you would skip over.
Not to mention, that most libraries will be using an imperative
language, so you'll be having to learn it eventually in order to read
the libraries even if you don't plan on writing any imperative code
yourself.

These points are especially important with Clojure, which is designed
to interoperate closely with its underlying Java. Many people on these
forums have already expressed the opinion that it's too impossible to
understand Clojure completely without knowing Java.

Just my 2 cents
  -Patrick

PS: If you decide to go ahead anyway and learn Clojure, and find it an
easy and enjoyable trip. I would be glad to hear about your
experiences. I am preparing to teach an introduction course in
programming and I'm still debating what language to use as an intro.

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en


Re: Clojure as a first programming language?

2009-12-01 Thread Base
My 2 cents (probably only worth 1 cent...) as someone who is learning
Clojure right now is that it is a great language, but there are a lot
of great languages and all have their strengths and weaknesses.  Given
your curiosity and apparent thirst for knowledge, you wont learn just
one language and that is the way to go, IMO.  Programming languages
are, to me, tools to accomplish goals, and what is right in one
situation is not necessarily the best in another.

I started programming using SAS (statistical software), which is
likely not the avenue of most of these people.  I moved into web
stuff, then Java,etc.  What is great about Lisp(s) is that it is
different conceptually from many of the other languages out there
(i.e.- Java), in how you think, but still flexible enough to encompass
many problems.  That is the coolest part of it to me.

So in that regards I totally agree with Lisp as a choice.  The
difficulty with Clojure is (as others have mentioned) that the
interoperability with Java (which is so great) also means that you
have to learn Java as well - and really do so simultaniously.  That
will be a challenge, but you will be better for it, for sure.

I rhighly recommend you check out SICP (free HTML book herehttp://
mitpress.mit.edu/sicp/full-text/book/book.html and videos here
http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/)
and prepare to have your mind blown. They use Scheme in this class
(though I hear they have just switched to Python for this calss
now...!) which is just another Lisp with slightly different syntax.
It was a good place for me to start.

Good luck!

On Nov 30, 11:38 pm, Towle towle.m...@gmail.com wrote:
 Hi all,

 Thanks for taking the time to read my post. I'm interested to get some
 opinions from experienced Clojure programmers on whether the language
 would be a good first language to learn, or rather to learn in-depth.
 I have minimal experienced with more common languages like Java, HTML,
 and C++, but having the personality I do, felt compelled to shop
 around a bit before choosing a first language to learn seriously on a
 deep and intuitive level-- perhaps my odd notion of there being a
 connection between a programmer and the first language s/he
 understands on that high of a level. So after shopping around
 thoroughly and picking up bits about on theoretical computer science
 and the history of programming languages, I decided to pick up a Lisp;
 I'm intrigued by the greater concept/idea behind the Lisp family of
 languages.

 After a long while trying to figure out which of the Lisps would be a
 good first choice, I stumbled across Clojure and immediately thought
 it a brilliant idea, conceding of course that at my current level of
 knowledge, I likely have no idea what a brilliant idea in computer
 programming looks like. Regardless, it still feels brilliant.

 As I see it, among other features of the language, the idea of a Lisp
 designed to be a capable choice for real-world code applications,
 that is a Lisp which embodies the spirit of that family of languages
 yet one which resolves many of the practicality complaints which
 stand as hurdles on a Lisp's path to real-world use. For my situation,
 that of a student who wants both a) to learn a first language I can
 have a real, intellectual appreciation for and b) to begin the journey
 to expertise in a language it would be practical to code web
 applications in.

 So, Clojure programmers, am I wrong? Should I pass on Clojure in favor
 of another langauge? Or learn Common Lisp or Scheme first, then try my
 hand at Clojure? Am I mistaken for a different reason? Or perhaps
 there are some criteria I should consider before diving in?

 Thanks in advance, and again for taking the time to read.
 --Towle

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en


Re: Clojure as a first programming language?

2009-12-01 Thread Constantine Vetoshev
On Dec 1, 12:38 am, Towle towle.m...@gmail.com wrote:
 So after shopping around
 thoroughly and picking up bits about on theoretical computer science
 and the history of programming languages, I decided to pick up a Lisp;
 I'm intrigued by the greater concept/idea behind the Lisp family of
 languages.

In your research, did you find Abelson and Sussman's book, Structure
and Interpretation of Computer Programs? The full text is freely
available at http://mitpress.mit.edu/sicp/, and video lectures from
the class are at 
http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/.
I have never seen a better introduction to programming and computing
than SICP. It uses Scheme, but you do not need to study the language
separately; you'll learn it naturally as you go through the book. Be
sure to do the exercises. :)

You can certainly go through SICP using Clojure, but you'll have to
deal with semantic differences between Scheme and Clojure (especially
in laziness and sequence behavior), so I don't recommend it. After you
have gone through the book, you'll pick up Clojure in no time at all,
and will probably find it an enjoyable language for real-world
programming.

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en


Re: Clojure as a first programming language?

2009-12-01 Thread Geoffrey Teale
Just want to second everyone pointing to SICP.  A better in-depth 
introduction to programming has yet to grace my desk.There are also 
video lectures available on line:

http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/

If this material had been so readily available in the late 80s I would 
have saved myself a long, long path to enlightenment :-D

-- 
Geoff

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en


Re: Clojure as a first programming language?

2009-12-01 Thread Chouser
On Tue, Dec 1, 2009 at 10:29 AM, CuppoJava patrickli_2...@hotmail.com wrote:
 There are more qualified people than me on these boards, but I can
 offer my own personal experience, which is to say, as a first language
 I would still recommend going the C/Java/Basic/Assembly route first
 before going with a Lisp.

I think understanding how computers work (Von Neumann machines,
I suppose) is indeed important.  If you're serious about being
a good programmer, you need to understand pointers, memory
allocation, virtual memory, IO scheduling, etc.  You at least
need to be aware of all the fiddly bits that modern programming
environments try to abstract away, so that when they fail to
behave well, or just plain fail, you have a fighting chance of
understanding what's going on.

But do you need to learn all that *first*?  I don't think so.
I didn't -- I learned BASIC and didn't know anything about
pointers.  Then I learned Pascal and pointers, and didn't know
anything about malloc or process scheduling.  Then I learned
C and some operating system internals.

So I think there's no harm in learning a nice clean high-level
language first, as long as you eventually learn some C and OS
stuff.  Maybe you'll find you like C and get into hardware driver
development.  Or more likely you'll be happy to tuck away the
C knowledge and do mid- or high-level work in a language that
allows you to (most of the time) ignore such details.  Clojure is
designed to be a good place to end up in this more likely case,
and I think is largely succeeding.

I think the biggest down side to learning Clojure as a first
language, as others have mentioned, is its relationship to the
JVM.  Although this is a strength when it comes to actually using
Clojure to get real things done, especially while Clojure is
still so young, I fear it's a weakness for a first language.
Currently doing almost anything interesting requires not only
knowledge of Clojurey things (immutable collections, functional
style, lazy seqs, etc.) but also Javay things (static methods,
method inheritence, classpaths, javadocs).  This is one reason
why I recommend http://projecteuler.net -- it allows you to
accomplish *something* with nearly pure Clojure, even though you
don't get to do anything graphical or webby.  So I *hope* that's
good enough for Clojure to be a good first language -- after all,
why not start off where you should end up? -- but I worry that
it's not.

If you're tenacious and hungry for knowledge, I'd say go for it.

--Chouser

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en


Re: Clojure as a first programming language?

2009-12-01 Thread Tayssir John Gabbour
Interestingly, there's this book which is a crash course on building a
computer stack from the ground up: from logic gates, to a compiler, to
an OS. And the simulator, in which you build all these things, is in
Java.

Nisan/Schocken's _The Elements of Computing Systems_: http://
www1.idc.ac.il/tecs/

Luke Gorrie mentioned porting the circuits he wrote (not, and, or,
xor, mux, dmux, half-adder, full-adder, adder) to Clojure.
http://lukego.livejournal.com/17711.html

So... there may be a strange loop here where a good path to learning
these low-level things is a counter-intuitive one.

I agree that Java-y things (static methods, method inheritence,
classpaths, javadocs) are an issue; maybe there should be a little
tutorial for people that surveys What's a .jar file? and public
static void... whuh?


All the best,
Tayssir


And their simulator -- which you build and simulate your computer on
-- is a Java program.

On Dec 1, 5:19 pm, Chouser chou...@gmail.com wrote:
 On Tue, Dec 1, 2009 at 10:29 AM, CuppoJava patrickli_2...@hotmail.com wrote:
  There are more qualified people than me on these boards, but I can
  offer my own personal experience, which is to say, as a first language
  I would still recommend going the C/Java/Basic/Assembly route first
  before going with a Lisp.

 I think understanding how computers work (Von Neumann machines,
 I suppose) is indeed important.  If you're serious about being
 a good programmer, you need to understand pointers, memory
 allocation, virtual memory, IO scheduling, etc.  You at least
 need to be aware of all the fiddly bits that modern programming
 environments try to abstract away, so that when they fail to
 behave well, or just plain fail, you have a fighting chance of
 understanding what's going on.

 But do you need to learn all that *first*?  I don't think so.
 I didn't -- I learned BASIC and didn't know anything about
 pointers.  Then I learned Pascal and pointers, and didn't know
 anything about malloc or process scheduling.  Then I learned
 C and some operating system internals.

 So I think there's no harm in learning a nice clean high-level
 language first, as long as you eventually learn some C and OS
 stuff.  Maybe you'll find you like C and get into hardware driver
 development.  Or more likely you'll be happy to tuck away the
 C knowledge and do mid- or high-level work in a language that
 allows you to (most of the time) ignore such details.  Clojure is
 designed to be a good place to end up in this more likely case,
 and I think is largely succeeding.

 I think the biggest down side to learning Clojure as a first
 language, as others have mentioned, is its relationship to the
 JVM.  Although this is a strength when it comes to actually using
 Clojure to get real things done, especially while Clojure is
 still so young, I fear it's a weakness for a first language.
 Currently doing almost anything interesting requires not only
 knowledge of Clojurey things (immutable collections, functional
 style, lazy seqs, etc.) but also Javay things (static methods,
 method inheritence, classpaths, javadocs).  This is one reason
 why I recommendhttp://projecteuler.net-- it allows you to
 accomplish *something* with nearly pure Clojure, even though you
 don't get to do anything graphical or webby.  So I *hope* that's
 good enough for Clojure to be a good first language -- after all,
 why not start off where you should end up? -- but I worry that
 it's not.

 If you're tenacious and hungry for knowledge, I'd say go for it.

 --Chouser

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en


Re: Clojure as a first programming language?

2009-12-01 Thread Tayssir John Gabbour
Interestingly, there's this book which is a crash course on building a
computer stack from the ground up: from logic gates, to a compiler, to
an OS. And the simulator, in which you build all these things, is in
Java.

Nisan/Schocken's _The Elements of Computing Systems_: http://
www1.idc.ac.il/tecs/

Luke Gorrie mentioned porting the circuits he wrote (not, and, or,
xor, mux, dmux, half-adder, full-adder, adder) to Clojure.
http://lukego.livejournal.com/17711.html

So... there may be a strange loop here where a good path to learning
these low-level things is a counter-intuitive one.

I agree that Java-y things (static methods, method inheritence,
classpaths, javadocs) are an issue; maybe there should be a little
tutorial for people that surveys What's a .jar file? and public
static void... whuh?


All the best,
Tayssir


On Dec 1, 5:19 pm, Chouser chou...@gmail.com wrote:
 On Tue, Dec 1, 2009 at 10:29 AM, CuppoJava patrickli_2...@hotmail.com wrote:
  There are more qualified people than me on these boards, but I can
  offer my own personal experience, which is to say, as a first language
  I would still recommend going the C/Java/Basic/Assembly route first
  before going with a Lisp.

 I think understanding how computers work (Von Neumann machines,
 I suppose) is indeed important.  If you're serious about being
 a good programmer, you need to understand pointers, memory
 allocation, virtual memory, IO scheduling, etc.  You at least
 need to be aware of all the fiddly bits that modern programming
 environments try to abstract away, so that when they fail to
 behave well, or just plain fail, you have a fighting chance of
 understanding what's going on.

 But do you need to learn all that *first*?  I don't think so.
 I didn't -- I learned BASIC and didn't know anything about
 pointers.  Then I learned Pascal and pointers, and didn't know
 anything about malloc or process scheduling.  Then I learned
 C and some operating system internals.

 So I think there's no harm in learning a nice clean high-level
 language first, as long as you eventually learn some C and OS
 stuff.  Maybe you'll find you like C and get into hardware driver
 development.  Or more likely you'll be happy to tuck away the
 C knowledge and do mid- or high-level work in a language that
 allows you to (most of the time) ignore such details.  Clojure is
 designed to be a good place to end up in this more likely case,
 and I think is largely succeeding.

 I think the biggest down side to learning Clojure as a first
 language, as others have mentioned, is its relationship to the
 JVM.  Although this is a strength when it comes to actually using
 Clojure to get real things done, especially while Clojure is
 still so young, I fear it's a weakness for a first language.
 Currently doing almost anything interesting requires not only
 knowledge of Clojurey things (immutable collections, functional
 style, lazy seqs, etc.) but also Javay things (static methods,
 method inheritence, classpaths, javadocs).  This is one reason
 why I recommendhttp://projecteuler.net-- it allows you to
 accomplish *something* with nearly pure Clojure, even though you
 don't get to do anything graphical or webby.  So I *hope* that's
 good enough for Clojure to be a good first language -- after all,
 why not start off where you should end up? -- but I worry that
 it's not.

 If you're tenacious and hungry for knowledge, I'd say go for it.

 --Chouser

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en


Re: Clojure as a first programming language?

2009-12-01 Thread John Harrop
On Tue, Dec 1, 2009 at 8:30 PM, Alex Osborne a...@meshy.org wrote:

 Clojure would be challenging language to start with, as (all?) the books
 and documentation are aimed at people who are already programmers.  But
 if you like a challenge then perhaps that's even a good thing.  If
 you're already a techie type person and are happy to fiddle around in
 configuration files and the command-line I don't think it should be that
 much of an obstacle.


Actually, you can download Netbeans and install it with a few mouse clicks,
and Enclojure with a few more, and then have a working REPL to try short
code snippets at with a few more. No mess, no fuss, no manual configuration
file hacking, no command line (excluding the REPL prompt of course).

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en