this is the common FAQ of LISP language programming, the FAQ is built to avoid so many wasted time spending hours just to browse the web, looking for any repeated useless question, rahter than practice.
this FAQ, is not intended for public audience, I write this article as the answer for my self, so maybe this is not for you, because the situation maybe vary.
should I learn Lisp (or Scheme) ?
Yes, if you
- if you don’t take any university class when reading this document, by mean you have more free time than university student, I highly recommend you to pick one of the Scheme implementation, and start learning.
No, if you
- if you student at university, I have to say that it’s likely you have “default” programing language that your university choose, mostly Java or Python. don’t feel such in hurry to learn Lisp, it’s better to learn what your university pick for you, maybe it’s hard because you want to learn another programming language, but for the first timer the importance is to learn how to know the fundamental things in programing (Identifiers, Data Types, Literas, Array and so on), after you grasp the syntax and the paradigm of the programming language, it’s not enough. You need to practice it, read other’s people code, write more code, and do deliberate practice, solve programming poblem in project euler, codechef or other.
if you take Lisp with you when you still learning the basic of programming, you will have less time to practice(the default language), and when you don’t practice enough, you can’t accomplish your taks from your lecturer or you can’t do so much contribution in your shcool project team.
when you grasp the programming skill you can now learn other languages, based on paradigm. You can’t say one language more beautiful and well-design than other if you are medium programmer, you can judge something when you master it, and you can love something when you master it. I doubt with people saying “I like foo” when it is the first day he learn it, mostly they do because following other people. When you added more language to your programming skill list, your view and programming skill increased, and at this point, you can pick the language based on your liking
but I hate java ?
some folk (including me) heard so many people hate java, even the funny thing is, I ever visit this project page , and I find “Never discriminate (even if you like Emacs and Java).”.
the first time I introduced java in my university, I was shocked, because as far as I know, the community more likely like Pyhton than java. I spend so many time spending time to think,sent emails here and there asking for advice, especially when I read “Free but Shackled - The Java Trap“, so I spend some days figuring out.
I find the answer for my self as below:
“free but shackled”. of course I can pick other programming languge, but at November 13, 2006 java relased as free software. so you can use OpenJDK, hack it, build something awesome with, and get your freedom.
“Java got so many critique”. beside being popular, java got so many critique about design and so on, but always remember that Java is just a tool, it is not religion that you will bring forever. it’s a tool for solving problem. I do hate java before, but when Mr.Windiarto Nugroho built his SIMRS in java, and relased as free software, so many hospitals adopt it. it’s not about the language, library, framework you use, but how contribution you give to society
what is the difference beetween OpenJDK and OracleJDK ?
as stated here
Q: What is the difference between the source code found in the OpenJDK repository, and the code you use to build the Oracle JDK?
A: It is very close - our build process for Oracle JDK releases builds on OpenJDK 7 by adding just a couple of pieces, like the deployment code, which includes Oracle’s implementation of the Java Plugin and Java WebStart, as well as some closed source third party components like a graphics rasterizer, some open source third party components, like Rhino, and a few bits and pieces here and there, like additional documentation or third party fonts. Moving forward, our intent is to open source all pieces of the Oracle JDK except those that we consider commercial features such as JRockit Mission Control (not yet available in Oracle JDK), and replace encumbered third party components with open source alternatives to achieve closer parity between the code bases.
pick one and start.
don’t waste your time comparing foo with baz, baz with bar, or comparing one implementation to other. for beginner the most important thing is to understand the fundamental things of programning (Identifiers, Data Types, Literals, Array and so on). don’t take other people rant’s, those rants (language design, inconsistency,speed) is not for you as beginner. there will be a time when you can choose a language that suits your heart’s will, pick one and start.
it’s not that hard to learn other languages.
when you see Bozhidar Ivanov Batsov CV, you will see
I’m currently the CTO of Tradeo Inc., where I develop and supervise various Ruby on Rails and Node.js applications. Before that I’ve worked as Java developer (Swing, JavaEE, etc). Before that I used to be a C++ developer and before that I developed Linux kernel drivers for some embedded devices. As you can see I’ve gradually transferred from low-level to very high level programming – hopefully this will preserve my sanity for a while.
Basically, I spent a bunch of time hacking both Perl and Java and some with Python and most of my friends and colleagues are smart Java programmers. Most of them have heard that Lisp is pretty cool but are also sceptical about it on many levels. I want to write a book that will reach them. Most of the good Common Lisp books out there are a bit dated (Paul Graham’s excellent books were published almost 10 years ago) and tend to assume that the reader is already pretty motivated to learn the language. So I’m trying to help bridge the culture gap.
Peter Seibel also the one who sent an email to Joshua Bloch, convince him to implement chained exception in Java.
Peter Seibel’s answer for my question.
Hey, I never answered your earlier DM. There are definitely people who get paid to use Clojure. And here and there proper making a living with Common Lisp. But if I learned over thing from writing Coders, it’s that languages don’t matter that much. Which USD nitty you say that learning a bunch of languages isn’t useful. Anyway, best of luck and happy hacking!
Romi Satria Wahono once said
Operating system, programming language, software and technology a tool (tool) that we must master and use to solve problems. The tool is impermanent, and not a religion that must be embraced or broadcasted for life. Dependency on a tool is folly. The coachman’s debate about the tools and mutual cursing or dug up a tool is futile, because they each have their own advantages and disadvantages
- Why is everyone in such a rush?
- Java’s Cover
- Beating the Averages
- The Perils of JavaSchools
- Articles and Essays - schemers.org
- How To Become A Hacker - Eric Steven Raymond
- How I do my computing - RMS
So what do you think ? Leave your comments below.