4 ms·
Enslaved? This word reminds me of C, C++, Java, C#, ... :-) It's funny that all these modern languages have copied - and are still copying - features which Lis
by bitcracker 15y ago
Enslaved? This word reminds me of C, C++, Java, C#, ... :-)
It's funny that all these modern languages have copied - and are still copying - features which Lisp had for decades.
I know really many programming languages but the power of Lisp is still superior. I can express myself in much less code than in all other modern languages. Python is an exception but that's no surprise because Python is just a subset of Lisp with a modern syntax and clean API.
Regarding Javascript, I think it will be the top language of the coming decade because it offers everything the average programmer needs: easy syntax, many APIs and even speed (Google V8 etc.). Even Microsoft supports Javascript. I also believe that many of the other languages will provide backends for Javascript soon.
- hello_moto 15y agoI heard this a lot: Modern languages copying features that Lisp had for decades Lisp is still superior Can write less code in Lisp Ok. Gotcha. Now, I'd like to build a web-app with some storage backend (mixed of RDBMS and NoSQL). Can do REST API. Requires web-service integration. Will perform nightly batch computation using Hadoop. Would like to have automation test and continuous integration. Before Clojure, how can I do all of these with less code using LISP? PS: I'm still unsure how pure Clojure can help me as well seeing that now suddenly I required a Java object with JAXB annotation and probably require JAX-WS client API to do web services, etc.
- sbryant 15y agoRDBMS - CLSQL it does everything. NoSQL - Whatever you want. Cl-mongo exists. There's even CLOS object stores for when you really want object persistence. REST - This isn't really a language thing. Web- UnCommon Web, Huchentoot, Weblocks. You can even write your javascript in parenscript and be lisp all the way down. If you want to know how LISP can do all of this and more please read Practical Common Lisp. http://www.gigamonkeys.com/book/ http://www.gigamonkeys.com/book/ Just keep in mind that the book is a few years old now. I would also like to ask why you think it's not possible to do any of the things you've asked of in any language?
- hello_moto 15y agoIt's possible to do everything I asked in many other languages. But my question was specifically: how can I do all of those and at the same time write in less code. If I have to roll my own framework or library (lightweight or not) wouldn't that count as writing more code than I have to?
- sbryant 15y agoLet me rephrase the question. Why do you believe you have to roll your own frameworks for everything? I just presented you with a couple of frameworks geared towards web development. There are NoSQL solutions as well. Couch, Mongo, Redis whatever. Writing your own bindings shouldn't be too difficult either.
- bitcracker 15y ago> how can I do all of those and at the same time write in > less code. It's not about writing the same algorithms in less code but about the way you design them. When you write Lisp code the same way as say Java or C++ then it's likely that you won't have less code. Lisp changed the way how I write programs. THAT makes the difference. For instance, in Java or C++ I write a loop to apply a function on a data collection. In Lisp I just use a map function for those elements. In Lisp it's very usual to use macros to shorten code. These macros have NOTHING to do with the harmful C++ macro system. They are just functions to create well structured code. Python copied list comprehensions from Lisp. This is a good example how a Lisp fesature makes code way shorter.
- brlewis 15y agoI'm doing this sort of thing with Kawa Scheme and a JSON parser written in Scheme.
- bitcracker 15y ago> Now, I'd like to build a web-app with some storage backend >(mixed of RDBMS and NoSQL). Can do REST API. Requires > web-service integration. Will perform nightly batch > computation using Hadoop. Would like to have automation > test and continuous integration. Quick research: http://racket-lang.org/ http://racket-lang.org/ http://planet.racket-lang.org/ http://planet.racket-lang.org/ (the "CPAN" of Racket) http://en.wikipedia.org/wiki/MongoDB http://en.wikipedia.org/wiki/MongoDB http://docs.racket-lang.org/continue/index.html http://docs.racket-lang.org/continue/index.html (web apps) https://github.com/dmacdougall/spin https://github.com/dmacdougall/spin (RESTful web apps) http://en.wikipedia.org/wiki/Datalog http://en.wikipedia.org/wiki/Datalog The shell commands of Racket could be used for (native compiled) batch files. Some real world applicatons: http://www.mail-archive.com/users@racket-lang.org/msg07436.html http://www.mail-archive.com/users@racket-lang.org/msg07436.h... The only thing I miss is a sophisticated GUI editor like in Delphi Pascal. MrEd is similar but only supports the basic GUI components (labels, buttons, ...). I hope composed components (tables ...) will come in future.
- bitcracker 15y agoIf you want to write really short code then take a look at Shen: http://www.shenlanguage.org/Documentation/index.htm http://www.shenlanguage.org/Documentation/index.htm It supports Lisp, Scheme and Javascript as backend.