Lisp HUG Maillist Archive

Re: A few newbie questions

Hello All,

I would like to thank everyone for the great feedback. The information you provided has been very helpful. It is exactly what I was looking for. It looks like I have found a winner!! I will be a LispWorks customer by the end of the week ;-).

I have been doing some experimenting with CLOS, CLJSON and CLSQL. CLJSON can encode a standard CLOS class instance to json. CLSQL can do a similar thing from tables to a special kind of view class. The problem is that CLJSON chokes when trying to encode one of these view classes. I figured the solution would be to derive these view classes from a standard CLOS class and have CLJSON access the base class. In C++ you would simply cast an instance of a view class to it's base class. I'm having one heck of a time figuring out how to do this in Lisp. Is there a way to make the view class look like the base class when passing it as a parameter to CLJSON?

Otherwise, I think I'm getting along fairly well (for a long time C/C++ programmer). Lisp seems to require a lot less scaffolding for things than C/C++ does. I took me little bit to figure out a way to think about the functional programming aspect of Lisp, but it's getting a little easier every day. I'm becoming quite fond of the LispWorks IDE. It has just what you need without a whole bunch of stuff that you don't. I was reading about the way that threads work and I'm looking forward to digging into that. It looks like a nice api. I will also be giving Edi's Hunchentoot a test drive very soon.

It looks like my first Lisp major project is going to be recoding a C++ based business process engine in Lisp. I think it's an excellent candidate for Lispification. I might even be able to take advantage of the KnowledgeWorks stuff.


Thanks again for your time and patience,
Gerry 


Re: A few newbie questions

Hi Gerry,

I just wanted to share my experience, and answer your questions.

I am an independent programmer, selling my product is my principal source of income.  When I searched for a tool that would help me work across platforms, I made a rather exhaustive search of what technologies are available, and for my needs LispWorks was the most interesting one.  The high price tag made me think twice before purchasing, but after a bit more than a year, LispWorks became my main development environment.


On 7 janv. 2013, at 04:22, Gerry Weaver <gerryw@compvia.com> wrote:

I would like to thank everyone for the great feedback. The information you provided has been very helpful. It is exactly what I was looking for. It looks like I have found a winner!! I will be a LispWorks customer by the end of the week ;-).

This is a very good news!
I am sure you will not regret this choice.

The benefit of using Lisp will not come immediately, it took me a bit of time to find my style, have the proper knowledge and mastering of the language… and I'm still learning, but that's what's exciting.


I have been doing some experimenting with CLOS, CLJSON and CLSQL. CLJSON can encode a standard CLOS class instance to json. CLSQL can do a similar thing from tables to a special kind of view class. The problem is that CLJSON chokes when trying to encode one of these view classes. I figured the solution would be to derive these view classes from a standard CLOS class and have CLJSON access the base class. In C++ you would simply cast an instance of a view class to it's base class. I'm having one heck of a time figuring out how to do this in Lisp. Is there a way to make the view class look like the base class when passing it as a parameter to CLJSON?

Common Lisp being a dynamic language, object casting is not necessary.
You can not show only one part of an object to CLJSON, it is just seen as it is.

Now, it seems to me that your problem is more related to the design rather than the language.

In my personal opinion, automatic CLOS to XYZ (JSON here) serialization does not work.  You should avoid coupling database persistence (a priori domain model), with JSON representation (external I/O).  CLJSON offers this appealing feature of CLOS serialization, but this abstraction is in fact more complex to use and understand.  This problem is not really specific to CLJSON but to any library that tries to do JSON output from object-oriented introspection.  More specifically, polymorphism, multiple inheritance, are difficult to handle properly, and require for example ugly type tags or unique identifiers in the JSON output that are solely present to help the library to its job.

I would recommend the manual JSON generation approach.  It is close enough to your application domain model to be easy to understand, but also decoupled enough to be easily maintained or even replaced.


Otherwise, I think I'm getting along fairly well (for a long time C/C++ programmer). Lisp seems to require a lot less scaffolding for things than C/C++ does. I took me little bit to figure out a way to think about the functional programming aspect of Lisp, but it's getting a little easier every day. I'm becoming quite fond of the LispWorks IDE. It has just what you need without a whole bunch of stuff that you don't. I was reading about the way that threads work and I'm looking forward to digging into that. It looks like a nice api. I will also be giving Edi's Hunchentoot a test drive very soon.

The MP library is one of the best multiprocessing library I have used so far!
And Edi's code is a reference in the community, take a look at CL-PPCRE if you want one example of excellent code.


It looks like my first Lisp major project is going to be recoding a C++ based business process engine in Lisp. I think it's an excellent candidate for Lispification. I might even be able to take advantage of the KnowledgeWorks stuff.

Good luck with your project, KnowledgeWorks is by itself a whole new universe.


Best,
Cam

Re: A few newbie questions

Hi Camille, others,


In defense of the pricing strategy of LispWorks, I'm rather surprised to see everybody mention the high price of the product. I'm currently contracted for a firm which uses a different brand Common Lisp and pays more than the price for the single user license for LispWorks just for the maintenance fee for their single user development license. Add to that the cost for redistribution licenses and I must say I think the deal being offered by LispWorks is really cheap, especially since their CL is on par.


Just my 0.02EUR.


Bye,


Erik.


On Mon, Jan 7, 2013 at 11:32 AM, Camille Troillard <camille@osculator.net> wrote:
Hi Gerry,

I just wanted to share my experience, and answer your questions.

I am an independent programmer, selling my product is my principal source of income.  When I searched for a tool that would help me work across platforms, I made a rather exhaustive search of what technologies are available, and for my needs LispWorks was the most interesting one.  The high price tag made me think twice before purchasing, but after a bit more than a year, LispWorks became my main development environment.


Re: A few newbie questions

I would agree with Erik.
Lispworks pricing is more than reasonable.

Sheldon

On Mon, Jan 7, 2013 at 2:39 PM, Erik Huelsmann <ehuels@gmail.com> wrote:
Hi Camille, others,


In defense of the pricing strategy of LispWorks, I'm rather surprised to see everybody mention the high price of the product. I'm currently contracted for a firm which uses a different brand Common Lisp and pays more than the price for the single user license for LispWorks just for the maintenance fee for their single user development license. Add to that the cost for redistribution licenses and I must say I think the deal being offered by LispWorks is really cheap, especially since their CL is on par.


Just my 0.02EUR.


Bye,


Erik.



On Mon, Jan 7, 2013 at 11:32 AM, Camille Troillard <camille@osculator.net> wrote:
Hi Gerry,

I just wanted to share my experience, and answer your questions.

I am an independent programmer, selling my product is my principal source of income.  When I searched for a tool that would help me work across platforms, I made a rather exhaustive search of what technologies are available, and for my needs LispWorks was the most interesting one.  The high price tag made me think twice before purchasing, but after a bit more than a year, LispWorks became my main development environment.



Re: A few newbie questions

I use Common Lisp a lot in my job, but I haven't been able to justify
the expense to my management to buy LispWorks for the following
reasons:

- I'm the only one in the company that uses Common Lisp, and while my
management supports my use, it is an exception to the norm.

- My development platform is Mac OS X, and again I'm in the relative
minority amongst the non web developers here. Most of my work is
multilingual (as in multiple human languages) and Mac OS X gives me
the best platform for that. However, if I want to share anything I'm
writing I need to build for Windows and Linux.

- I work with a lot of data: a 64-bit compiler is essential.

Given the above we would need to buy Enterprise licenses for three
platforms, which is just too expensive when I have compilers like CCL
and SBCL available and Emacs + Slime. Even though I'd love to use the
LispWorks GUI, and be able to write cross-platform GUI apps
(everything right now is command-line based) I can't.

This is not to bash LispWorks: my experience with LispWorks Personal
has been exemplary and I wish I could support it, but my personal
checkbook can't afford the Enterprise license for the Mac and my
employer can't justify it.

My US$0.02.

    -tree

-- 
Tom Emerson
tremerson@gmail.com
http://www.dreamersrealm.net/tree

_______________________________________________
Lisp Hug - the mailing list for LispWorks users
lisp-hug@lispworks.com
http://www.lispworks.com/support/lisp-hug.html


RE: A few newbie questions

Hi Tom,

Have you looked at EQL? I have played with it a little bit and it seemed capable. I've used Qt for years and it is awesome.

Thanks,
Gerry


________________________________________
From: owner-lisp-hug@lispworks.com [owner-lisp-hug@lispworks.com] on behalf of Tom Emerson [tremerson@gmail.com]
Sent: Monday, January 07, 2013 5:07 PM
To: Camille Troillard
Cc: Lisp Hug Lispworks [lisp-hug@lispworks.com]
Subject: Re: A few newbie questions

I use Common Lisp a lot in my job, but I haven't been able to justify
the expense to my management to buy LispWorks for the following
reasons:

- I'm the only one in the company that uses Common Lisp, and while my
management supports my use, it is an exception to the norm.

- My development platform is Mac OS X, and again I'm in the relative
minority amongst the non web developers here. Most of my work is
multilingual (as in multiple human languages) and Mac OS X gives me
the best platform for that. However, if I want to share anything I'm
writing I need to build for Windows and Linux.

- I work with a lot of data: a 64-bit compiler is essential.

Given the above we would need to buy Enterprise licenses for three
platforms, which is just too expensive when I have compilers like CCL
and SBCL available and Emacs + Slime. Even though I'd love to use the
LispWorks GUI, and be able to write cross-platform GUI apps
(everything right now is command-line based) I can't.

This is not to bash LispWorks: my experience with LispWorks Personal
has been exemplary and I wish I could support it, but my personal
checkbook can't afford the Enterprise license for the Mac and my
employer can't justify it.

My US$0.02.

    -tree

--
Tom Emerson
tremerson@gmail.com
http://www.dreamersrealm.net/tree

_______________________________________________
Lisp Hug - the mailing list for LispWorks users
lisp-hug@lispworks.com
http://www.lispworks.com/support/lisp-hug.html


_______________________________________________
Lisp Hug - the mailing list for LispWorks users
lisp-hug@lispworks.com
http://www.lispworks.com/support/lisp-hug.html


Re: A few newbie questions

Unable to parse email body. Email id is 11913

Updated at: 2020-12-10 08:36 UTC