 | | From: | devmail at runbox.com | | Subject: | Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | 19 Jan 2005 23:49:05 -0800 |
|
|
 | An appeal to the collective wisdom of c.l.l. and c.l.s:
Assume, for a few terrifying moments, that you are a pointy-haired boss put in charge of a team who are expected to implement some fairly advanced software using a language they don't know.
Given the set of parameters below, would you choose Lisp or Smalltalk for the project...and why?
1. Most of team members are "systems analysts" (i.e. business and MIS majors), not programmers. No experience with Emacs or Store, etc. 2. Project will be internet and intranet software -> browser-based UI. 3. Much of functionality is standard business-type stuff (groupware, etc.) 4. Part of functionality, however, will rely on natural language processing of 30,000 or so data feeds, many of which are XML-based. 5. Specific implementation choices are between SBCL or LispWorks and VisualWorks Smalltalk. 6. Would like to benefit from as much open-source code as possible. 7. There are only a couple real programmers to mentor the team. 8. Would like at least a remote possibility of project succeeding...
Thanks in advance for helping me with this sick little (non-hypothetical) exercise.
|
|
 | | From: | Martin DeMello | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Thu, 20 Jan 2005 09:08:13 GMT |
|
|
 | In comp.lang.lisp devmail@runbox.com wrote: > An appeal to the collective wisdom of c.l.l. and c.l.s: > > Assume, for a few terrifying moments, that you are a pointy-haired boss > put in charge of a team who are expected to implement some fairly > advanced software using a language they don't know. > > Given the set of parameters below, would you choose Lisp or Smalltalk > for the project...and why?
Depending on your requirements, take a look at Ruby too - to a very simplified approximation, it's Smalltalk with a Unix accent.
martin
|
|
 | | From: | Pascal Costanza | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Thu, 20 Jan 2005 11:38:15 +0100 |
|
|
 | Give them a few weeks to let them explore the options on their own and let them make their own decision. This will raise their motivation to actually achieve the goals set for the project. Self-motivation seems to be one of the most important factors in software projects.
Pascal
devmail@runbox.com wrote: > An appeal to the collective wisdom of c.l.l. and c.l.s: > > Assume, for a few terrifying moments, that you are a pointy-haired boss > put in charge of a team who are expected to implement some fairly > advanced software using a language they don't know. > > Given the set of parameters below, would you choose Lisp or Smalltalk > for the project...and why? > > 1. Most of team members are "systems analysts" (i.e. business and MIS > majors), not programmers. No experience with Emacs or Store, etc. > 2. Project will be internet and intranet software -> browser-based UI. > 3. Much of functionality is standard business-type stuff (groupware, > etc.) > 4. Part of functionality, however, will rely on natural language > processing of 30,000 or so data feeds, many of which are XML-based. > 5. Specific implementation choices are between SBCL or LispWorks and > VisualWorks Smalltalk. > 6. Would like to benefit from as much open-source code as possible. > 7. There are only a couple real programmers to mentor the team. > 8. Would like at least a remote possibility of project succeeding... > > Thanks in advance for helping me with this sick little > (non-hypothetical) exercise. >
|
|
 | | From: | Peter Seibel | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Sun, 23 Jan 2005 19:37:57 GMT |
|
|
 | Kenny Tilton writes:
> Rahul Jain wrote: > >> Kenny Tilton writes: >> >>>1. all objects all the time >> Lisp is also all objects all the time. It's just that it has a >> broader >> definiton of how an object can be represented internally. >> > > > Lookit, kiddies, there is all objects all the time and then > there is all objects all the time. I was talking about all objects all > the time.
But why cede the terminological battle to The Man at the get go. (Not that Smalltalk is The Man any more than Lisp is. But it's definition of "all objects all the time" is pretty much in line with The Man's.)
> eg, In: (dotimes (n 10) (print n)), what GF is being invoked on the > object 10?
What do GF's have to do with objects? Okay, that was rhetorical.
-Peter
-- Peter Seibel peter@javamonkey.com
Lisp is the red pill. -- John Fraser, comp.lang.lisp
|
|
 | | From: | Rahul Jain | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Sun, 23 Jan 2005 13:15:57 -0500 |
|
|
 | Kenny Tilton writes:
> 1. all objects all the time
Lisp is also all objects all the time. It's just that it has a broader definiton of how an object can be represented internally.
-- Rahul Jain rjain@nyct.net Professional Software Developer, Amateur Quantum Mechanicist
|
|
 | | From: | Kenny Tilton | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Sun, 23 Jan 2005 19:10:14 GMT |
|
|
 |
Rahul Jain wrote:
> Kenny Tilton writes: > > >>1. all objects all the time > > > Lisp is also all objects all the time. It's just that it has a broader > definiton of how an object can be represented internally. >
Lookit, kiddies, there is all objects all the time and then there is all objects all the time. I was talking about all objects all the time.
eg, In: (dotimes (n 10) (print n)), what GF is being invoked on the object 10?
kt
-- Cells? Cello? Cells-Gtkk?: http://www.common-lisp.net/project/cells/ Why Lisp? http://lisp.tech.coop/RtL%20Highlight%20Film Land o' Kenny? http://www.tilton-technology.com/index.html
Obligatory quote to make me seem cool:
"Doctor, I wrestled with reality for forty years, and I am happy to state that I finally won out over it." -- Elwood P. Dowd
|
|
 | | From: | Peter Seibel | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Thu, 20 Jan 2005 18:17:02 GMT |
|
|
 | Kenny Tilton writes:
> Pascal Costanza wrote: > >> Give them a few weeks to let them explore the options on their own... > > Yes, just break open a smalltalk book and PCL and in two days the > decision will be much better informed. That said... > > What I do not like about SmallTalk: > > 1. all objects all the time
But wait, Lisp has that too. ;-) For some (important) definition of "object".
-Peter
P.S. Since Kenny brought it up, I'll expand the acronym for him: PCL is _Practical Common Lisp_, soon to be published by Apress, currently available in draft form at: .
-- Peter Seibel peter@javamonkey.com
Lisp is the red pill. -- John Fraser, comp.lang.lisp
|
|
 | | From: | drewc | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Thu, 20 Jan 2005 22:12:55 GMT |
|
|
 | Peter Seibel wrote: > Kenny Tilton writes: > > >>Pascal Costanza wrote: >> >> >>>Give them a few weeks to let them explore the options on their own... >> >>Yes, just break open a smalltalk book and PCL and in two days the >>decision will be much better informed. That said... >> >>What I do not like about SmallTalk: >> >>1. all objects all the time > > > But wait, Lisp has that too. ;-) For some (important) definition of > "object". > > -Peter
So true! Actually, i was catching up on ARC the other day, and, for a lanugage that was not supposed to be particularly Object-Oriented, He's actually managed to make the most consistent object system i've ever seen. It's turtles all the way down!
That's assuming objects are just "thingies" with state and type. if you want CLOS or message passing, you are free to build it on top of ARCs object-type system.
> > P.S. Since Kenny brought it up, I'll expand the acronym for him: PCL > is _Practical Common Lisp_, soon to be published by Apress, currently > available in draft form at: . >
|
|
 | | From: | Kenny Tilton | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Thu, 20 Jan 2005 13:59:29 GMT |
|
|
 |
Pascal Costanza wrote:
> Give them a few weeks to let them explore the options on their own...
Yes, just break open a smalltalk book and PCL and in two days the decision will be much better informed. That said...
What I do not like about SmallTalk:
1. all objects all the time 2. precedence of operations varying between unary, binary, and keyword 3. not having source files where I can eyeball a pagefull of code in one go 4. single-inheritance 5. no macros 6. no special variables 7. not enough parentheses (not joking) 8. did I mention all objects all the time?
As for CLOS being complex, it is simply a superset of the capabilities of Smalltalk.
As for you all being newbies, both languages are very approachable. The Lispworks IDE counts a lot in keeping up with the ST IDE. But here is a Deep Thought: you cannot think "non-programmer". If you stay non-programmers, you will not succeed with this. So becoming programmers is a must, at which point the only question is, which language is better. No comment. :)
kt
-- Cells? Cello? Celtik?: http://www.common-lisp.net/project/cells/ Why Lisp? http://alu.cliki.net/RtL%20Highlight%20Film
|
|
 | | From: | Matthias | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | 20 Jan 2005 13:52:40 +0100 |
|
|
 | devmail@runbox.com writes:
> An appeal to the collective wisdom of c.l.l. and c.l.s: > > Assume, for a few terrifying moments, that you are a pointy-haired boss > put in charge of a team who are expected to implement some fairly > advanced software using a language they don't know. > [...] > 7. There are only a couple real programmers to mentor the team.
Ask these people what they want and give it to them. Don't make decisions on languages you don't know personally on the basis of a newsgroup posting.
Really: If your programmers are good, they'll know what they need. If they aren't good your project is doomed, and you'll probably get blamed for choosing an unconventional language.
|
|
 | | From: | skogstadNielsen(fjern) | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Sat, 22 Jan 2005 00:05:04 +0100 |
|
|
 | devmail@runbox.com wrote:
> An appeal to the collective wisdom of c.l.l. and c.l.s: > > Assume, for a few terrifying moments, that you are a pointy-haired boss > put in charge of a team who are expected to implement some fairly > advanced software using a language they don't know. > > Given the set of parameters below, would you choose Lisp or Smalltalk > for the project...and why? > > 1. Most of team members are "systems analysts" (i.e. business and MIS > majors), not programmers. No experience with Emacs or Store, etc. > 2. Project will be internet and intranet software -> browser-based UI. > 3. Much of functionality is standard business-type stuff (groupware, > etc.) > 4. Part of functionality, however, will rely on natural language > processing of 30,000 or so data feeds, many of which are XML-based. > 5. Specific implementation choices are between SBCL or LispWorks and > VisualWorks Smalltalk. > 6. Would like to benefit from as much open-source code as possible. > 7. There are only a couple real programmers to mentor the team. > 8. Would like at least a remote possibility of project succeeding... > > Thanks in advance for helping me with this sick little > (non-hypothetical) exercise. > If your staff is very mature, very hard working, very co-operative then the choice of platform don't mean much. If not, then the platform don't mean much either. Because in the latter case Suicide is sure. - Maybe suicide could be done in a more funny way.;-) ps: If you don't have specs for the project, then the succes of the mission is gained by having upper managemnt to think it is a success - then the platform don't mean much either it could be VB6.
just my bet . soren
|
|
 | | From: | John Thingstad | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Sat, 22 Jan 2005 00:27:18 +0100 |
|
|
 | On Sat, 22 Jan 2005 00:05:04 +0100, skogstadNielsen(fjern) <"skogstadNielsen(fjern)"@ddf.dk> wrote:
> If you don't have specs for the project, then the succes of the mission > is gained by having upper managemnt to think it is a success - then the > platform don't mean much either it could be VB6. > > just my bet . > soren
Just a thought. Have you considered design style. Then take a look at extreme programming. This is a style that is suitable for both Lisp and Smalltalk. www.extremeprogramming.org.
-- Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/
|
|
 | | From: | Chris Uppal | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Thu, 20 Jan 2005 10:04:04 -0000 |
|
|
 | devmail@runbox.com wrote:
> 3. Much of functionality is standard business-type stuff (groupware, > etc.) > 4. Part of functionality, however, will rely on natural language > processing of 30,000 or so data feeds, many of which are XML-based.
I'm not a lisper, so I may be biased. Still, I'd have expected that Smalltalk would be better suited to (3) -- which you say is the bulk of the project -- so, even though I doubt if Smalltalk would be better for (4), I'd guess that ST would be the better overall. However...
> 7. There are only a couple real programmers to mentor the team. > 8. Would like at least a remote possibility of project succeeding...
Then you have no choice but to use whatever the "couple of real programmers" are /already/ comfortable with.
You mentioned that this is at least partially a training exercise, but there's no way that you can use it to train the /entire/ team at the same time. Either the "real programmers" are teaching (ST or Lisp or whatever) or they are learning it. I doubt whether you stand a cat in Hell's chance if you expect them to be doing both at once.
-- chris
|
|
 | | From: | devmail at runbox.com | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | 20 Jan 2005 02:47:51 -0800 |
|
|
 | Edi,
This is not a troll, and I'm most definitely NOT trying to start a language war.
I didn't ask which language was "better." I asked which language would be best for this specific scenario AND WHY. I'm more concerned with the WHY. Obviously, the inexperienced team is the overriding concern - so I hoped to get a feel for which language had the shorter learning curve (including tools) and would be easier to grasp for people who have no background in computer science. I'm assuming the obvious answer would be Smalltalk as it was designed as a "first programming language" or whatever, but I'm new enough to both languages that I thought there might be a something I'm overlooking IN THE LONG RUN.
I didn't ask more specific questions to start because I didn't want to unduly influence the direction of the discussion - and perhaps miss out on a post about something that I would have never thought about.
Some specific things I'm interested in:
CLOS is both more flexible and more complex as an O-O system than Smalltalk, as I understand it - do you think the pros of this flexibility outweigh the cons of the complexity when dealing with inexperienced programmers on the one hand and the algorithmic complexity of NLP on the other hand?
I read an older Usenet posting about the advantages of encapsulation and "how you think objects should behave" that struck a chord with me...I was hoping for more of that type of discussion.
The suitability of both languages for NLP. Lisp is, I would think, much more commonly used in NLP, but I read that Smalltalk is also very strong...? Specific pros and cons? (Mark Watson...anybody?)
All things (algorithms,etc.) being equal, compiled Lisp is presumably faster than compiled (VM) Smalltalk...will that be an issue when I'm talking about performing NLP operations on 30,000 data feeds? Is there anything I should know about threading issues for this sort of problem domain? (Green threads vs. native threads, specific implementation differences and pros/cons between SBCL, VW, and LW?)
Differences in deployment issues and ease between the various options?
It's 4 a.m. where I'm at, so I'm just rambling...but it is a serious post and I'm very interested in any and all (legitimate) points anyone thinks I should consider....
Thanks,
- Sergei
|
|
 | | From: | devmail at runbox.com | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | 20 Jan 2005 02:30:26 -0800 |
|
|
 | Chris,
I totally agree with your point, but this isn't really an issue in this specific case.
The "real programmers" that will mentor the team will probably be drawn from a consulting agency we work with depending on which language we choose. They have several full-time Smalltalk and Lisp programmers that all have experience as instructors.
I didn't spell that out to start with because...well, I didn't want financially biased answers or emailed resumes in response to a serious question...I've had bad experiences with that sort of thing in the past.
("Platform X is the ONLY solution for this problem...by the way, I happen to specialize in Platform X, and for a per diem of only...")
|
|
 | | From: | Edi Weitz | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Thu, 20 Jan 2005 10:30:35 +0100 |
|
|
 | On 19 Jan 2005 23:49:05 -0800, devmail@runbox.com wrote:
> An appeal to the collective wisdom of c.l.l. and c.l.s: > > Assume, for a few terrifying moments, that you are a pointy-haired > boss put in charge of a team who are expected to implement some > fairly advanced software using a language they don't know. > > Given the set of parameters below, would you choose Lisp or > Smalltalk for the project...and why? > > 1. Most of team members are "systems analysts" (i.e. business and MIS > majors), not programmers. No experience with Emacs or Store, etc. > 2. Project will be internet and intranet software -> browser-based UI. > 3. Much of functionality is standard business-type stuff (groupware, > etc.) > 4. Part of functionality, however, will rely on natural language > processing of 30,000 or so data feeds, many of which are XML-based. > 5. Specific implementation choices are between SBCL or LispWorks and > VisualWorks Smalltalk. > 6. Would like to benefit from as much open-source code as possible. > 7. There are only a couple real programmers to mentor the team. > 8. Would like at least a remote possibility of project succeeding... > > Thanks in advance for helping me with this sick little > (non-hypothetical) exercise.
Yes, this is sick.
Sorry, but it really smells like a troll. What on earth do you expect except for most of the c.l.s inhabitants recommending Smalltalk and most of the c.l.l inhabitants recommending Lisp? If you're lucky you get a nice flame war and I guess this is what you want.
If you were serious you wouldn't crosspost this to both groups but you'd ask specific questions in the individual groups.
Edi.
PS: Follow-up to comp.lang.lisp set.
--
Lisp is not dead, it just smells funny.
Real email: (replace (subseq "spamtrap@agharta.de" 5) "edi")
|
|
 | | From: | Bulent Murtezaoglu | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Thu, 20 Jan 2005 14:37:27 +0200 |
|
|
 | >>>>> "d" == devmail writes: [...] d> CLOS is both more flexible and more complex as an O-O system d> than Smalltalk, as I understand it - do you think the pros of d> this flexibility outweigh the cons of the complexity when d> dealing with inexperienced programmers on the one hand and the d> algorithmic complexity of NLP on the other hand?
Complexity of of CLOS is only there when you try to use it to do complex things. It does not get in your way otherwise. For efficiency your problem will probably be your trainees not knowing how to produce efficient code. (CLOS may give you larger constants over say defstruct structs but you won't care if your guys are writing O(n^3) code anyway). If you'll be doing exploratory programming, CLOS is probably the right choice to get things working quickly. Once you know how you'll do what you are doing, you can benchmark and rewrite/refactor.
[...] d> All things (algorithms,etc.) being equal, compiled Lisp is d> presumably faster than compiled (VM) Smalltalk...will that be d> an issue when I'm talking about performing NLP operations on d> 30,000 data feeds?
Your 30000 data feeds themselves will be a problem. Will they be coming in simultaneously from the net? Will you guys be up to writing code that can handle 30k network streams? (spinning 30k threads probably will not do it on reasonably cheap hardware, you could multiplex them into a single feed by additional code or do event loops &c.).
d> Is there anything I should know about d> threading issues for this sort of problem domain? (Green d> threads vs. native threads, specific implementation differences d> and pros/cons between SBCL, VW, and LW?) [...]
I'd do a back-of-envelope calculation to see how much memory, etc. I'd need. You may need a 64 bit machine for this. (then again I haven't seen original problem was so maybe these are all non-issues). You won't need it for develeopment of the NLP part, of course, but if that's the way it seems you'll have to go you'd need to choose a system that can do 64 bit natively.
cheers,
BM
|
|
 | | From: | Kelly Hall | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Thu, 20 Jan 2005 09:02:27 GMT |
|
|
 | devmail@runbox.com wrote: > Given the set of parameters below, would you choose Lisp or Smalltalk > for the project...and why?
You're probably boned either way, but I'd suggest the smalltalk route since the GUI is prettier for the non-programmers and the language is slightly less obsolete.
Cheers, Kelly
|
|
 | | From: | Pascal Bourguignon | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | 20 Jan 2005 10:31:55 +0100 |
|
|
 | Kelly Hall writes:
> devmail@runbox.com wrote: > > Given the set of parameters below, would you choose Lisp or Smalltalk > > for the project...and why? > > You're probably boned either way, but I'd suggest the smalltalk route > since the GUI is prettier for the non-programmers and the language is > slightly less obsolete.
Yes, but OP wrote that there won't be any GUI, only a WUI.
-- __Pascal Bourguignon__ http://www.informatimago.com/ Litter box not here. You must have moved it again. I'll poop in the sink.
|
|
 | | From: | Pascal Costanza | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Thu, 20 Jan 2005 11:46:24 +0100 |
|
|
 | Kelly Hall wrote:
> devmail@runbox.com wrote: > >> Given the set of parameters below, would you choose Lisp or Smalltalk >> for the project...and why? > > You're probably boned either way, but I'd suggest the smalltalk route > since the GUI is prettier for the non-programmers and the language is > slightly less obsolete.
I think the obsolesence of both languages are on par.
Pascal
P.S.: I have been recently to a meeting of Smalltalkers who organize a conference for their language. Yes, the community seems pretty active. Same for Lisp. Don't make the mistake to think that you're the only underdogs. ;)
|
|
 | | From: | Marco Antoniotti | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Thu, 20 Jan 2005 10:24:15 -0500 |
|
|
 |
Kelly Hall wrote: > devmail@runbox.com wrote: > >> Given the set of parameters below, would you choose Lisp or Smalltalk >> for the project...and why? > > > You're probably boned either way, but I'd suggest the smalltalk route > since the GUI is prettier for the non-programmers and the language is > slightly less obsolete.
If the OP is willing to use a commercial product, Lispworks gives you native look and feel on Windows and the Mac. The interfaces are very pretty.
.... and since, last I checked, Smalltalk did not have decent and standardized multi-methods, I'd reassess Common Lisp obsolescence and Smalltalk modernity. :)
.... plus ...
http://www.acmqueue.com/modules.php?name=Content&pa=showpage&pid=247&page=1
Soemthing we lispers have known all along. :)
Cheers -- Marco
|
|
 | | From: | devmail at runbox.com | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | 20 Jan 2005 02:38:34 -0800 |
|
|
 | Edi,
This is not a troll, and I'm most definitely NOT trying to start a language war.
I didn't ask which language was "better." I asked which language would be best for this specific scenario AND WHY. I'm more concerned with the WHY. Obviously, the inexperienced team is the overriding concern - so I hoped to get a feel for which language had the shorter learning curve (including tools) and would be easier to grasp for people who have no background in computer science. I'm assuming the obvious answer would be Smalltalk as it was designed as a "first programming language" or whatever, but I'm new enough to both languages that I thought there might be a something I'm overlooking IN THE LONG RUN.
I didn't ask more specific questions to start because I didn't want to unduly influence the direction of the discussion - and perhaps miss out on a post about something that I would have never thought about.
Some specific things I'm interested in:
CLOS is both more flexible and more complex as an O-O system than Smalltalk, as I understand it - do you think the pros of this flexibility outweigh the cons of the complexity when dealing with inexperienced programmers on the one hand and the algorithmic complexity of NLP on the other hand?
I read an older Usenet posting about the advantages of encapsulation and "how you think objects should behave" that struck a chord with me...I was hoping for more of that type of discussion.
The suitability of both languages for NLP. Lisp is, I would think, much more commonly used in NLP, but I read that Smalltalk is also very strong...? Specific pros and cons? (Mark Watson...anybody?)
All things (algorithms,etc.) being equal, compiled Lisp is presumably faster than compiled (VM) Smalltalk...will that be an issue when I'm talking about performing NLP operations on 30,000 data feeds? Is there anything I should know about threading issues for this sort of problem domain? (Green threads vs. native threads, specific implementation differences and pros/cons between SBCL, VW, and LW?)
Differences in deployment issues and ease between the various options?
It's 4 a.m. where I'm at, so I'm just rambling...but it is a serious post and I'm very interested in any and all (legitimate) points anyone thinks I should consider....
Thanks,
- Sergei
|
|
 | | From: | Lars Brinkhoff | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | 20 Jan 2005 13:42:22 +0100 |
|
|
 | devmail@runbox.com writes: > Specific pros and cons?
Lisp is really good with cons.
|
|
 | | From: | Espen Vestre | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Thu, 20 Jan 2005 15:17:40 +0100 |
|
|
 | devmail@runbox.com writes:
> 1. Most of team members are "systems analysts" (i.e. business and MIS > majors), not programmers. No experience with Emacs or Store, etc.
Ouch. As others have pointed out, this is the main obstacle. You need programmers to program. Period.
However, given your constraints, I guess this actually means you have to turn these people into programmers, and then there's no reason not to start out with lisp. Why go for anything less, if you actually have the choice, and your pupils' brains (presumably) haven't been hardwired (yet) with prejudices about curly and non- curly parantheses?
(I've taught Common Lisp to absolute newbies, and it was great fun!) -- (espen)
|
|
 | | From: | Wade Humeniuk | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Thu, 20 Jan 2005 14:28:25 GMT |
|
|
 | Espen Vestre wrote: > devmail@runbox.com writes: > > >>1. Most of team members are "systems analysts" (i.e. business and MIS >>majors), not programmers. No experience with Emacs or Store, etc. > > > Ouch. As others have pointed out, this is the main obstacle. You > need programmers to program. Period. >
That is not necessarily the case. Some of the programmers need to write the core application but if they write a domain specific language that would make it easier on the "systems analysts". Lisp is great at creating application specific languages.
Wade
|
|
 | | From: | Wade Humeniuk | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Thu, 20 Jan 2005 16:10:28 GMT |
|
|
 | devmail@runbox.com wrote: > An appeal to the collective wisdom of c.l.l. and c.l.s: > > Assume, for a few terrifying moments, that you are a pointy-haired boss > put in charge of a team who are expected to implement some fairly > advanced software using a language they don't know. > > Given the set of parameters below, would you choose Lisp or Smalltalk > for the project...and why? > > 1. Most of team members are "systems analysts" (i.e. business and MIS > majors), not programmers. No experience with Emacs or Store, etc.
This is not very important, you need everyone to understand the problem and develop a vocabulary that your team members can use to communicate with each other.
> 2. Project will be internet and intranet software -> browser-based UI.
Just details.
> 3. Much of functionality is standard business-type stuff (groupware, > etc.)
Then your system analysts already have a vocabulary/conceptual model of the system. You have to tap into this utilize their knowledge in a meaningful way.
> 4. Part of functionality, however, will rely on natural language > processing of 30,000 or so data feeds, many of which are XML-based.
There are natural language libraries already written in Lisp.
> 5. Specific implementation choices are between SBCL or LispWorks and > VisualWorks Smalltalk.
What platform?
> 6. Would like to benefit from as much open-source code as possible. > 7. There are only a couple real programmers to mentor the team.
Then you have to convert most of the project to not look like programming. You need some higher level language. Then "programmers" are spending their time writing very declarative code. If well done they do not even feel they are programming.
> 8. Would like at least a remote possibility of project succeeding... > > Thanks in advance for helping me with this sick little > (non-hypothetical) exercise. >
You need an infusion of positive thinking. It may be difficult, but one step at a time.
Pick Lisp.
Wade
|
|
 | | From: | devmail at runbox.com | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | 20 Jan 2005 02:17:52 -0800 |
|
|
 | Edi,
This is not a troll, and I'm most definitely NOT trying to start a language war.
I didn't ask which language was "better." I asked which language would be best for this specific scenario AND WHY. I'm more concerned with the WHY. Obviously, the inexperienced team is the overriding concern - so I hoped to get a feel for which language had the shorter learning curve (including tools) and would be easier to grasp for people who have no background in computer science. I'm assuming the obvious answer would be Smalltalk as it was designed as a "first programming language" or whatever, but I'm new enough to both languages that I thought there might be a something I'm overlooking IN THE LONG RUN.
I didn't ask more specific questions to start because I didn't want to unduly influence the direction of the discussion - and perhaps miss out on a post about something that I would have never thought about.
Some specific things I'm interested in:
CLOS is both more flexible and more complex as an O-O system than Smalltalk, as I understand it - do you think the pros of this flexibility outweigh the cons of the complexity when dealing with inexperienced programmers on the one hand and the algorithmic complexity of NLP on the other hand?
I read an older Usenet posting about the advantages of encapsulation and "how you think objects should behave" that struck a chord with me...I was hoping for more of that type of discussion.
The suitability of both languages for NLP. Lisp is, I would think, much more commonly used in NLP, but I read that Smalltalk is also very strong...? Specific pros and cons? (Mark Watson...anybody?)
All things (algorithms,etc.) being equal, compiled Lisp is presumably faster than compiled (VM) Smalltalk...will that be an issue when I'm talking about performing NLP operations on 30,000 data feeds? Is there anything I should know about threading issues for this sort of problem domain? (Green threads vs. native threads, specific implementation differences and pros/cons between SBCL, VW, and LW?)
Differences in deployment issues and ease between the various options?
It's 4 a.m. where I'm at, so I'm just rambling...but it is a serious post and I'm very interested in any and all (legitimate) points anyone thinks I should consider....
Thanks,
- Sergei
|
|
 | | From: | jarober at gmail.com | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | 20 Jan 2005 06:54:06 -0800 |
|
|
 | 1. all objects all the time
-- this is concistant - usually a good thing
2. precedence of operations varying between unary, binary, and keyword
-- every language has syntax rule; Smalltalk's are fairly slim. You can override this with parens
3. not having source files where I can eyeball a pagefull of code in one go
-- If you really want that, you can file code out.
4. single-inheritance
-- well, I'd argue that multiple inheritance adds complexity that we don't need - especially given unlimited polymorphism
5. no macros 6. no special variables 7. not enough parentheses (not joking) -- lol
8. did I mention all objects all the time?
-- you did :)
|
|
 | | From: | Kenny Tilton | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Thu, 20 Jan 2005 22:20:39 GMT |
|
|
 |
jarober@gmail.com wrote:
> 1. all objects all the time > > -- this is concistant - usually a good thing
actually, I think it is the Classic Mistake(tm): "Hey! Let's use it for everything!" Case in point: CPL, Guy Steele's constraints programming language. They did variable assignment as a constraint. Until they came to their senses. Also, consider Prolog. When ya just want to iterate or do any number of normal imperative steps, it always has be via logic and unification, with lotsa cuts thrown in cuz ya really just want to iterate.
We Lispniks are forever beating our chests over the many paradigms we have at our disposal. If you want polymorphism, define a method. If you want to add 2 plus 2, for god's sake do not send the + message to the first 2 with 2 as the operand, just add the little suckers. :)
> > 2. precedence of operations varying between unary, binary, and keyword > > -- every language has syntax rule; Smalltalk's are fairly slim. You > can override this with parens > > 3. not having source files where I can eyeball a pagefull of code in > one go > > -- If you really want that, you can file code out.
No, I also want to work on it as a page of code. Cut and paste a method three times to jumpstart three variants, or bring a function inline to the only plave it turns out it gets used by literally dragging it into the caller. etc etc.
> > 4. single-inheritance > > -- well, I'd argue that multiple inheritance adds complexity that we > don't need - especially given unlimited polymorphism
But the world we are modeling cannot be expressed with single inheritance. Delegation is just another way of saying, "Damn, we should have allowed multiple inheritance!".
MI can be straightforward just as GOTO can be tamed by using it in strictly limited ways. My rule is to have various singly-inheriting class trees for any given functional domain, and when multiple-inheritance is necessary I am allowed to inherit only once from any given tree. No conflicts possible. It did take me a while to hit on this policy, tho, so I can see how other people get into trouble and MI has gotten a bad rap.
kt
-- Cells? Cello? Celtik?: http://www.common-lisp.net/project/cells/ Why Lisp? http://alu.cliki.net/RtL%20Highlight%20Film
|
|
 | | From: | Cesar Rabak | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Fri, 21 Jan 2005 00:14:12 -0200 |
|
|
 | Kenny Tilton escreveu: [snipped]
>> -- If you really want that, you can file code out. > > > No, I also want to work on it as a page of code. Cut and paste a method > three times to jumpstart three variants, or bring a function inline to > the only plave it turns out it gets used by literally dragging it into > the caller. etc etc. > Kenny,
You could get surprised, but this in Smalltalk is seldom needed and (surprise, surprise ;-) considered a bad programming practice.
my .01999...
-- Cesar Rabak
|
|
 | | From: | Kenny Tilton | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Fri, 21 Jan 2005 03:42:55 GMT |
|
|
 |
Cesar Rabak wrote: > Kenny Tilton escreveu: > [snipped] > >>> -- If you really want that, you can file code out. >> >> >> >> No, I also want to work on it as a page of code. Cut and paste a >> method three times to jumpstart three variants, or bring a function >> inline to the only plave it turns out it gets used by literally >> dragging it into the caller. etc etc. >> > Kenny, > > You could get surprised, but this in Smalltalk is seldom needed and > (surprise, surprise ;-) considered a bad programming practice. > > my .01999...
Hang on. You just changed the assignee of "bad programming practice" from an Anonymous Considerer (which sounds to me like an invocation of some Grand Authority) to yourself (at a level of confidence just under two cents ).
So exactly whom am I about to trounce in this debate?
:)
btw, I am reminded fondly of sitting down to help my manager and another programmer with some code at 10 pm (they had been at it since about 6pm) and, after a careful review of their predicament, beginning to cut and paste like a maniac, provoking the manager to shriek and dive for another terminal to take a copy of the source before I could exit.
banged a shin badly knocking a chair out of the way, IIRC. thems were the days.
Kenny Tilton BS, '74, Slash 'n Burn Programming Academy
-- Cells? Cello? Celtik?: http://www.common-lisp.net/project/cells/ Why Lisp? http://alu.cliki.net/RtL%20Highlight%20Film
|
|
 | | From: | Jeff Brooks | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Fri, 21 Jan 2005 20:48:24 GMT |
|
|
 | Kenny Tilton wrote: > > Cesar Rabak wrote: >
.... snip ...
>> Kenny, >> >> You could get surprised, but this in Smalltalk is seldom needed and >> (surprise, surprise ;-) considered a bad programming practice. >> >> my .01999... > > Hang on. You just changed the assignee of "bad programming practice" > from an Anonymous Considerer (which sounds to me like an invocation of > some Grand Authority) to yourself (at a level of confidence just under > two cents ). > > So exactly whom am I about to trounce in this debate? > > :)
Copy and paste programming is bad programming practice in any language (Lisp included).
Jeff Brooks
|
|
 | | From: | Darin Johnson | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Fri, 21 Jan 2005 23:02:06 GMT |
|
|
 | Jeff Brooks writes:
> Copy and paste programming is bad programming practice in any language > (Lisp included).
I had to maintain code once that was written using copy-paste techniques *without* reindenting the code afterwords. Many lost hours tracking down bugs that would have been obvious if the conditionals had lined up...
-- Darin Johnson "Floyd here now!"
|
|
 | | From: | Pascal Bourguignon | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | 22 Jan 2005 00:45:59 +0100 |
|
|
 | Darin Johnson writes:
> Jeff Brooks writes: > > > Copy and paste programming is bad programming practice in any language > > (Lisp included). > > I had to maintain code once that was written using copy-paste > techniques *without* reindenting the code afterwords. Many > lost hours tracking down bugs that would have been obvious > if the conditionals had lined up...
In my first job I started with a listing 12 cm thick and when I finished removing duplicate code and adding new features, it was only 3 cm thick.
-- __Pascal Bourguignon__ http://www.informatimago.com/ I need a new toy. Tail of black dog keeps good time. Pounce! Good dog! Good dog!
|
|
 | | From: | Kenny Tilton | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Sat, 22 Jan 2005 03:07:06 GMT |
|
|
 |
Darin Johnson wrote:
> Jeff Brooks writes: > > >>Copy and paste programming is bad programming practice in any language >>(Lisp included). > > > I had to maintain code once that was written using copy-paste > techniques *without* reindenting the code afterwords. Many > lost hours tracking down bugs that would have been obvious > if the conditionals had lined up...
You should have ported it all to Lisp first and then auto-indented the whole source file in one key chord. :)
Y'all do not understand. I am not talking about cutting and pasting and then turning it in. It is just one way of creating code. Some of youse guys touch-type, I cut/paste and then go from there.
But hey, maybe this is why I have never had any success as a programmer. PWUAAA HHAAAH HAAA HAA...
:)
kt
-- Cells? Cello? Cells-Gtkk?: http://www.common-lisp.net/project/cells/ Why Lisp? http://lisp.tech.coop/RtL%20Highlight%20Film Land o' Kenny? http://www.tilton-technology.com/index.html
Obligatory quote to make me seem cool:
"Doctor, I wrestled with reality for forty years, and I am happy to state that I finally won out over it." -- Elwood P. Dowd
|
|
 | | From: | patrik at nordebo.com | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | 22 Jan 2005 22:05:47 +0100 |
|
|
 | Kenny Tilton writes:
> Darin Johnson wrote: > > > Jeff Brooks writes: > > > >>Copy and paste programming is bad programming practice in any language > >>(Lisp included). > > I had to maintain code once that was written using copy-paste > > techniques *without* reindenting the code afterwords. Many > > lost hours tracking down bugs that would have been obvious > > if the conditionals had lined up... > > You should have ported it all to Lisp first and then auto-indented the > whole source file in one key chord. :)
That trick works on most languages though, if you use a decent editor with support for the language, like Emacs. Lisp has many advantages, but this isn't really one of them.
|
|
 | | From: | Kenny Tilton | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Sun, 23 Jan 2005 00:07:52 GMT |
|
|
 |
patrik@nordebo.com wrote:
> Kenny Tilton writes: > > >>Darin Johnson wrote: >> >> >>>Jeff Brooks writes: >>> >>> >>>>Copy and paste programming is bad programming practice in any language >>>>(Lisp included). >>> >>>I had to maintain code once that was written using copy-paste >>>techniques *without* reindenting the code afterwords. Many >>>lost hours tracking down bugs that would have been obvious >>>if the conditionals had lined up... >> >>You should have ported it all to Lisp first and then auto-indented the >>whole source file in one key chord. :) > > > That trick works on most languages though, if you use a decent editor > with support for the language, like Emacs.
Don't tell me, tell Darin. :)
kt
-- Cells? Cello? Cells-Gtkk?: http://www.common-lisp.net/project/cells/ Why Lisp? http://lisp.tech.coop/RtL%20Highlight%20Film Land o' Kenny? http://www.tilton-technology.com/index.html
Obligatory quote to make me seem cool:
"Doctor, I wrestled with reality for forty years, and I am happy to state that I finally won out over it." -- Elwood P. Dowd
|
|
 | | From: | Darin Johnson | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Sun, 23 Jan 2005 00:47:11 GMT |
|
|
 | Kenny Tilton writes:
> You should have ported it all to Lisp first and then auto-indented the > whole source file in one key chord. :)
Actually, this is what forced me learn about indent-region in emacs...
-- Darin Johnson "You used to be big." "I am big. It's the pictures that got small."
|
|
 | | From: | John Thingstad | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Thu, 20 Jan 2005 10:46:46 +0100 |
|
|
 | On 19 Jan 2005 23:49:05 -0800, wrote:
> An appeal to the collective wisdom of c.l.l. and c.l.s: > > Assume, for a few terrifying moments, that you are a pointy-haired boss > put in charge of a team who are expected to implement some fairly > advanced software using a language they don't know. > > Given the set of parameters below, would you choose Lisp or Smalltalk > for the project...and why? > > 1. Most of team members are "systems analysts" (i.e. business and MIS > majors), not programmers. No experience with Emacs or Store, etc. > 2. Project will be internet and intranet software -> browser-based UI. > 3. Much of functionality is standard business-type stuff (groupware, > etc.) > 4. Part of functionality, however, will rely on natural language > processing of 30,000 or so data feeds, many of which are XML-based. > 5. Specific implementation choices are between SBCL or LispWorks and > VisualWorks Smalltalk. > 6. Would like to benefit from as much open-source code as possible. > 7. There are only a couple real programmers to mentor the team. > 8. Would like at least a remote possibility of project succeeding... > > Thanks in advance for helping me with this sick little > (non-hypothetical) exercise. >
How fast does the code need to run? Learning python is much quicker than any of the alternatives you mentioned. In any case you should have a pilot project to get the programmers up to speed. Better to have them learn by making mistakes there than in you application. For a console based app I would prefer Lisp but it probly take 6 months for the programmers to get productive in it. Are you sure you can afford NOT to hire experienced programmers. (you can get consultants from say manpower for temporary employment.)
-- Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/
|
|
 | | From: | Rahul Jain | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Sun, 23 Jan 2005 12:58:51 -0500 |
|
|
 | "John Thingstad" writes:
> Learning python is much quicker than any of the alternatives you mentioned. > In any case you should have a pilot project to get the programmers up to > speed.
We're talking about people who haven't been corrupted to assume that computers have the same restricitons as primitive programming languages, tho. He specifically wants people with no understanding of what a computer is, what it can do, how it can mess up, or how to structure things logically to write this program. Of course, it's bound to fail no matter what language he uses.
-- Rahul Jain rjain@nyct.net Professional Software Developer, Amateur Quantum Mechanicist
|
|
 | | From: | Friedrich Dominicus | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Fri, 21 Jan 2005 09:03:54 +0100 |
|
|
 | "John Thingstad" writes:
> > Smalltalk's syntax is cryptic and takes time to get used to > also it is almost impossible to write a algorithm in a straight > forward way as all you have are messages. > Again download squeak (a MS Windows free environment) and > see for yourself. (www.squeak.org) Well I have use both, and I can't tell that I had more difficulties to understand Smalltalk then Python. But I soon started to dislike Python and now prefer Ruby. The only real problem I see with Smalltalk was the sheer mass of Libraries available right from the start. Just looking through some browser, my first impression was simply "wow".
However the syntax of Smalltalk is probably the simples around, for a good tutorial on Smalltalk I can recommend "on to smalltalk", Pythons may have more libraries but you have to install them usually separatly. And Python is IMHO very much rooted in Unix (not per se a bad thing) whereas Smalltalk is more an OS or way of life in itself. I shares much of this with Common Lisp and Emacs IMHO.
Regards Friedrich
-- Please remove just-for-news- to reply via e-mail.
|
|
 | | From: | BR | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Thu, 20 Jan 2005 14:17:14 -0500 |
|
|
 | On Thu, 20 Jan 2005 10:46:46 +0100, John Thingstad wrote:
> Better to have them learn by making mistakes there than in you > application. For a console based app I would prefer Lisp but it probly > take 6 months for the programmers to get productive in it. Are you sure > you can afford NOT to hire experienced programmers. (you can get > consultants from say manpower for temporary employment.)
That raises a question. How long does it take to learn and be proficient in a given language? Most material on the net is of a technical nature, and generally ignores the human aspects.
|
|
 | | From: | Rahul Jain | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Sun, 23 Jan 2005 13:13:01 -0500 |
|
|
 | Brian Downing writes:
> To be fair, Lispworks' editor looks pretty good to me, although it's > missing tons of operations from GNU Emacs that I expect to be there by > default.
It's actually a Hemlock, which is an Emacs. It just doesn't have as many commands and packages written for it as GNU Emacs does.
-- Rahul Jain rjain@nyct.net Professional Software Developer, Amateur Quantum Mechanicist
|
|
 | | From: | John Thingstad | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Sun, 23 Jan 2005 21:26:04 +0100 |
|
|
 | On Sun, 23 Jan 2005 13:13:01 -0500, Rahul Jain wrote:
> Brian Downing writes: > >> To be fair, Lispworks' editor looks pretty good to me, although it's >> missing tons of operations from GNU Emacs that I expect to be there by >> default. > > It's actually a Hemlock, which is an Emacs. It just doesn't have as many > commands and packages written for it as GNU Emacs does. >
Nor does it need it. It is primarily designed to edit lisp files. Since it isn't a OS shell, mail browser Internet browse etc. it dosn't need as much. I still claim for editing Lisp it is quite adequate.
-- Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/
|
|
 | | From: | Friedrich Dominicus | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Thu, 20 Jan 2005 18:53:01 +0100 |
|
|
 | "John Thingstad" writes: > > How fast does the code need to run? > Learning python is much quicker than any of the alternatives you > mentioned. Why should it be easier to learn Python then Smalltalk?
Friedrich -- Please remove just-for-news- to reply via e-mail.
|
|
 | | From: | John Thingstad | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Thu, 20 Jan 2005 19:05:17 +0100 |
|
|
 | On Thu, 20 Jan 2005 18:53:01 +0100, Friedrich Dominicus wrote:
> "John Thingstad" writes: >> >> How fast does the code need to run? >> Learning python is much quicker than any of the alternatives you >> mentioned. > Why should it be easier to learn Python then Smalltalk? > > Friedrich
Python has a somewhat simpler syntax. There s a great python tutorial that you can run through in a day. Already then you can start programming python. There is a vast number of libraries to interface to the OS. This includes SAX/DOM support to read and process your XML files. Python is slow but the libraries, written in C/C++ are not. So for many applications python seems fast enough. The exception is extensive calculations. Even then there is a module num-py which pretty much solves this. The best way to figure out what you think is to try the python tutorial and see for yourself. (www.python.org) Python has a intuitive syntax and things have a tendency to work as a person expects. Python was also originally designed to teach people programming but has proven itself powerful enough for application development.
Smalltalk's syntax is cryptic and takes time to get used to also it is almost impossible to write a algorithm in a straight forward way as all you have are messages. Again download squeak (a MS Windows free environment) and see for yourself. (www.squeak.org)
-- Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/
|
|
 | | From: | Bruce Stephens | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Sat, 22 Jan 2005 12:23:57 +0000 |
|
|
 | Kenny Tilton writes:
> Jeff Brooks wrote: > >> Kenny Tilton wrote: > ... > >>> Consistency is where this subthread started, btw. The only true >>> value in software development is the isomorphism of the algorithm >>> with the problem being solved. Some problems can be reasonably >>> modeled as a message send, but "2 + 2" is not one of them. >> "2 + 2" models adding two numbers together very well. > > Duh. Now how do you explain: > > 1 + 2 * 3 => 9
I presume it's that message passing is left associative, so 1+2 evaluates to 3, and then 3*3 evaluates to 9. I agree it's initially confusing, but I'd also guess that after a while someone who programs in Smalltalk regularly wouldn't need to think about it.
[...]
|
|
 | | From: | Rahul Jain | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Sun, 23 Jan 2005 13:03:13 -0500 |
|
|
 | Hans-Martin Mosner writes:
> I have tried to get a lisp interpreter to work about 15 years ago. > Does that make me an experienced lisp programmer? Nah.
Even less of a credible one because you were still using stuff that was obsolete 50 years ago 15 years ago. ;)
-- Rahul Jain rjain@nyct.net Professional Software Developer, Amateur Quantum Mechanicist
|
|
 | | From: | Jeff Brooks | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Thu, 20 Jan 2005 22:16:29 GMT |
|
|
 | John Thingstad wrote:
> On Thu, 20 Jan 2005 18:53:01 +0100, Friedrich Dominicus > wrote: > >> Why should it be easier to learn Python then Smalltalk? > > Python has a somewhat simpler syntax.
Actually, Smalltalk has a simplier syntax than Python.
.... snip ...
> Smalltalk's syntax is cryptic and takes time to get used to > also it is almost impossible to write a algorithm in a straight > forward way as all you have are messages.
All syntax seems cryptic until you get used to it.
It's easy to write algorithms in Smalltalk using messages.
.... snip ...
Jeff Brooks
|
|
 | | From: | Ng Pheng Siong | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Fri, 21 Jan 2005 07:31:10 +0000 (UTC) |
|
|
 | According to John Thingstad : > Python has a somewhat simpler syntax. > [...] > Smalltalk's syntax is cryptic
This is backasswards.
> [Smalltalk syntax] takes time to get used to
This is true, if only because many people are used to Algol-style syntax. But I don't think that takes more time than it does to get used to Python's whitespace-based indentation.
-- Ng Pheng Siong
http://sandbox.rulemaker.net/ngps -+- M2Crypto, ZServerSSL for Zope, Blog http://www.sqlcrypt.com -+- Database Engine with Transparent AES Encryption
|
|
 | | From: | John Thingstad | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Fri, 21 Jan 2005 09:19:04 +0100 |
|
|
 | On Fri, 21 Jan 2005 07:31:10 +0000 (UTC), Ng Pheng Siong wrote:
> According to John Thingstad : >> Python has a somewhat simpler syntax. >> [...] >> Smalltalk's syntax is cryptic > > This is backasswards. > >> [Smalltalk syntax] takes time to get used to > > This is true, if only because many people are used to Algol-style syntax. > But I don't think that takes more time than it does to get used to > Python's > whitespace-based indentation. > > >
Well I can't speak for others. But for me python is MUCH more intuitive. It reads like the pseudo code I used to write. From I started reading the tutorial to I started writing programs in python took days not weeks. I find indentation base to be intuitive too.
There is a old saying in list circles: "The parenthesises are for the compiler, the indentation is for the programmer." Well in python there is only the indentation and the interpreter reads them too.
To me fitting into the smalltalk way of doing things is like putting on a straight jacket. I can't move freely. Always the smalltalk way of doing things constrained my expression.
I should perhaps add that like to program using multiple paradigms and choose the approach I find most appropriate for the exact problem be it procedural, functional or object oriented.
-- Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/
|
|
 | | From: | Ng Pheng Siong | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Fri, 21 Jan 2005 16:24:39 +0000 (UTC) |
|
|
 | According to John Thingstad : > But for me python is MUCH more intuitive. > [...] > To me fitting into the smalltalk way of doing things is like putting on > a straight jacket. I can't move freely. Always the smalltalk way of > doing things constrained my expression.
I am not preaching at you, for I take a dim view of programming language evangelism personally, so make of the following what you will. ;-)
Here's a story about Bruce Lee which sets the stage for this little exercise. A master martial artist asked Bruce to teach him everything Bruce knew about martial arts. Bruce held up two cups, both filled with liquid. "The first cup," said Bruce, "represents all of your knowledge about martial arts. The second cup represents all of my knowledge about martial arts. If you want to fill your cup with my knowledge, you must first empty your cup of your knowledge."
I got it from here:
http://www.stevepavlina.com/blog/index.php?p=50
Cheers.
-- Ng Pheng Siong
http://sandbox.rulemaker.net/ngps -+- M2Crypto, ZServerSSL for Zope, Blog http://www.sqlcrypt.com -+- Database Engine with Transparent AES Encryption
|
|
 | | From: | Kenny Tilton | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Fri, 21 Jan 2005 18:51:52 GMT |
|
|
 |
Ng Pheng Siong wrote: > According to John Thingstad : > >>But for me python is MUCH more intuitive. >>[...] >>To me fitting into the smalltalk way of doing things is like putting on >>a straight jacket. I can't move freely. Always the smalltalk way of >>doing things constrained my expression. > > > I am not preaching at you, for I take a dim view of programming language > evangelism personally, so make of the following what you will. ;-) > > Here's a story about Bruce Lee which sets the stage for this little > exercise. A master martial artist asked Bruce to teach him everything > Bruce knew about martial arts. Bruce held up two cups, both filled with > liquid. "The first cup," said Bruce, "represents all of your knowledge > about martial arts. The second cup represents all of my knowledge about > martial arts. If you want to fill your cup with my knowledge, you must > first empty your cup of your knowledge." > > I got it from here: > > http://www.stevepavlina.com/blog/index.php?p=50
Good one! Bruce got it from: some students brought their Zen professor to meet this groovy old monk they had met. The professor came in, greeted the monk cordially, everyone sat down, and as the monk was serving tea the learned scholar said, "My young students say you are wonderful and recommended I come hear you speak on Zen. Students are easily impressed. Let us see what you can teach me."
At this point the monk reached the professor and filled his cup and kept on pouring until the cup overflowed. The professor cried out, "Stop! The cup is full!"
The monk replied, "Your mind is like the cup. I can teach you nothing."
Anyway, I have encountered more than one all-X-all-the-time philosophy including Smalltalk. They all have the same problem. They take some neat trick and try to make it serve all needs just because it is neat, and because they also get excited about the imagined value of consistency. Consistency is where this subthread started, btw. The only true value in software development is the isomorphism of the algorithm with the problem being solved. Some problems can be reasonably modeled as a message send, but "2 + 2" is not one of them.
Contorting "2 + 2" into a message send preserves consistency within the language model. yawn. It also fundamentally breaks the programmability of the language. One is now doomed to endless mental contortions whenever the message send is the wrong model, where improved productivity comes from making the language effectively disappear so that we are expressing ourselves intuitively as we program.
The supposed value of consistency is making everything will be clearer. The arrow goes the other way. Single inheritance is likewise presumed to be simpler. Hello delegation and/or interfaces. And first graders were supposed to learn arithmetic more easily if they first learned set theory. Chya.
This is what happens when scholars are allowed to decide what goes on in the trenches.
kt
-- Cells? Cello? Celtik?: http://www.common-lisp.net/project/cells/ Why Lisp? http://alu.cliki.net/RtL%20Highlight%20Film
|
|
 | | From: | Pascal Costanza | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Fri, 21 Jan 2005 20:36:07 +0100 |
|
|
 | Kenny Tilton wrote:
> Contorting "2 + 2" into a message send preserves consistency within the > language model. yawn.
Be careful: It's actually "2 + 2" in Smalltalk while it's "(+ 2 2)" in Lisp. This is only to say that this is an example in which both languages make admissions at some level. The question is what level do you care about.
Pascal
|
|
 | | From: | Kenny Tilton | | Subject: | Re: Lisp or Smalltalk for Specific Suicide Mission (er...Project)? | | Date: | Fri, 21 Jan 2005 20:32:49 GMT |
|
|
 |
Pascal Costanza wrote: > Kenny Tilton wrote: > >> Contorting "2 + 2" into a message send preserve |
|