Talking to an employee who refused to write in Smalltalk doing his job in
VB.Net instead, it seems the libraries in newer languages are much more productive than Smalltalk's library, regardless of the clarity of naming. So the stats saying Smalltalk is 3 times more productive than C or Java are misleading because you have to reinvent the wheel more often in Smalltalk The coding comparisons are either to restrictive so as not to enable use of many advanced library functions or have some other design error. So while I dislike that VB.Net and Delphi code which uses advanced library functions is so obscure as to be unintelligible, I must ask for an equaivalent or better library in Dolphin 6. Kirk Fraser |
> Talking to an employee who refused to write in Smalltalk doing his job in
> VB.Net instead, Sounds like a typical VB programmer to me. > So while I dislike that VB.Net and Delphi code which uses advanced library > functions is so obscure as to be unintelligible, I must ask for an > equaivalent or better library in Dolphin 6. Let me just see if I understand you correctly: You're asking for an advanced library with functions so obscure as to be unintelligible for Dolphin? Sounds like a great model for success! I haven't really found many limitations with the existing class library. If you consider that Dolphin has full access to COM. If you're comparing it to say, the .NET class libraries, well, I think its kind of hard to compare a team of scores of developers (Microsoft BCL Team), to that of a Object Arts (Andy, Blair, ... ?). Why not just use VB.NET if you're having so many issues with Smalltalk? (The library being outmoded, not extensive enough, other people can't use it, incorrcet naming conventions, hard to understand naming conventions, et al, all the issues you feel you have identified) |
In reply to this post by True Christian
> So while I dislike that VB.Net and Delphi code which uses advanced library
> functions is so obscure as to be unintelligible, I must ask for an > equaivalent or better library in Dolphin 6. For me, the Dolphin class heirarchy, associated goodies available on the internet, and com, is more than enough. I'd just like to have my hands on Dolphin 6. Enough with feature requests already! |
In reply to this post by True Christian
On Mon, 27 Dec 2004 02:30:52 -0800, "True Christian"
<[hidden email]> wrote: >Talking to an employee who refused to write in Smalltalk doing his job in >VB.Net instead, it seems the libraries in newer languages are much more >productive than Smalltalk's library, regardless of the clarity of naming. >So the stats saying Smalltalk is 3 times more productive than C or Java are >misleading because you have to reinvent the wheel more often in Smalltalk >The coding comparisons are either to restrictive so as not to enable use of >many advanced library functions or have some other design error. ((trueChristian class) superclass) = TrueTroll) ifTrue: [killFile plonk: trueChristian]. |
On Mon, 27 Dec 2004 13:23:28 +0100, Fernando <[hidden email]> wrote:
>On Mon, 27 Dec 2004 02:30:52 -0800, "True Christian" ><[hidden email]> wrote: > > >>Talking to an employee who refused to write in Smalltalk doing his job in >>VB.Net instead, it seems the libraries in newer languages are much more >>productive than Smalltalk's library, regardless of the clarity of naming. >>So the stats saying Smalltalk is 3 times more productive than C or Java are >>misleading because you have to reinvent the wheel more often in Smalltalk >>The coding comparisons are either to restrictive so as not to enable use of >>many advanced library functions or have some other design error. > >((trueChristian class) superclass) = TrueTroll) ifTrue: > [killFile plonk: trueChristian]. Hhmm.... I was assuming that trueChristian is some sort of Singleton of TrueChristian, which in turn was a subclass of TrueTroll. ;-) But what if it's an instance of TrueTroll? Then my code wouldn't work... ;-) How can can you find out all the superclases of a given class (all the way to Object)? O:-) |
Fernando wrote:
> But what if it's an instance of TrueTroll? Then my code wouldn't > work... ;-) Object>>isKindOf: is usually best for class testing. > How can can you find out all the superclases of a given class (all the > way to Object)? O:-) Behavior>>withAllSuperclasses, and other methods of Behavior in categories 'class hierarchy' and 'enumerating', will list super/sub-classes in various ways. -- chris |
On Mon, 27 Dec 2004 13:07:27 -0000, "Chris Uppal"
<[hidden email]> wrote: >Fernando wrote: > >> But what if it's an instance of TrueTroll? Then my code wouldn't >> work... ;-) > >Object>>isKindOf: is usually best for class testing. Aha! Now, this is a proof of Smalltalk's power: (poster isKindOf: Troll) ifTrue: [ killFile plonk: poster] This would be a killer app... };-D |
In reply to this post by Fernando Rodríguez
On Mon, 27 Dec 2004 13:23:28 +0100,
Fernando <[hidden email]> wrote: > > ((trueChristian class) superclass) = TrueTroll) ifTrue: > [killFile plonk: trueChristian]. Too many lispy parentheses: (trueChristian class superclass = TrueTroll) ifTrue: [killFile plonk: trueChristian]. The better way to go would be to implement Object>>troll ^false TrueTroll>>troll ^true Then you could write things like (Array with: fernando with: trueChristian) reject: [:x| x troll] and get only fernando as result. If you need more complex rules for deciding the trollnes of posters, you might want to go for TrollPolicy, but this editor window is too short to go further into details. kind regards, s. |
Stefan,
> Then you could write things like > (Array with: fernando with: trueChristian) > reject: [:x| x troll] > and get only fernando as result. No disrespect to your refactoring efforts, this is one area in which I recommend using existing software vs. rolling your own. Even w/o having to write an IDE extension, a right click, create filter (there was a loud "ploink" in there somewhere), delete posts, etc., does the job. I can also verify that Fernando's posts remain visible, as they should. Have a good one, Bill -- Wilhelm K. Schwab, Ph.D. [hidden email] |
In reply to this post by Stefan Schmiedl
On 27 Dec 2004 13:45:01 GMT, Stefan Schmiedl <[hidden email]> wrote:
>> ((trueChristian class) superclass) = TrueTroll) ifTrue: >> [killFile plonk: trueChristian]. > >Too many lispy parentheses: Must be my scheme background: I guess I speak smalltalk with a lisp. ;-) >Then you could write things like >(Array with: fernando with: trueChristian) > reject: [:x| x troll] >and get only fernando as result. Are you sure? };-) >If you need more complex rules for deciding the trollnes >of posters, you might want to go for TrollPolicy, but this >editor window is too short to go further into details. A pity, because it sounds interesting.... Actually I'm planning to start a new project (in a few months, hopefully) that would need to apply rather complex, and unfortunately changing, rules to objects. Ideally, and to preserve my sanity, I'd like to define those rules in the most declarative way possible. If it sounds like I'm looking for 'Smalltalk meets prolog', it's not entirely correct, as I don't need backward chaining, only forward chaining. I've been looking for some production system (with forward chaining) in Smalltalk, to avoid reinventing the flat tire, but haven't found anything. I heard of something called 'nee opus', but not even Google knows where it is now... :-( Any recommendations? O:-) Thanks |
In reply to this post by True Christian
Hi, you said: "..So the stats saying Smalltalk is 3 times more productive
than C or Java are misleading because you have to reinvent the wheel more often in Smalltalk..." What is the problem about reinventing wheels?. That is what programmers do all the time, and also car makers do too. I have never seen two different cars with the same type of wheels, even very similar cars use different types of wheels. Unfortunatly I've seen very different systems using the same 30MB database driver or 100MB report tool. Reinventing wheels is what is usually need to do, what you need to learn is how wheels work, and Smalltalk is great for that. It's cheaper and faster this way of working than using "building blocks". Diego Coronel |
On Mon, 27 Dec 2004 12:13:50 -0500, "DiegoC" <[hidden email]>
wrote: >Hi, you said: "..So the stats saying Smalltalk is 3 times more productive >than C or Java are misleading because you have to reinvent the wheel more >often in Smalltalk..." > >What is the problem about reinventing wheels?. The real problem is when people start reinventing the flat tire.... |
In reply to this post by Fernando Rodríguez
"Fernando" <[hidden email]> wrote
> [snip] Actually I'm planning to > start a new project (in a few months, hopefully) that would need to > apply rather complex, and unfortunately changing, rules to objects. > > Ideally, and to preserve my sanity, I'd like to define those rules in > the most declarative way possible. If it sounds like I'm looking for > 'Smalltalk meets prolog', it's not entirely correct, as I don't need > backward chaining, only forward chaining. > > I've been looking for some production system (with forward chaining) > in Smalltalk, to avoid reinventing the flat tire, but haven't found > anything. I heard of something called 'nee opus', but not even Google > knows where it is now... :-( > > Any recommendations? O:-) I've had a project to develop a forward expert system language in Dolphin going via remote developers for quite some time, before it was moved to VB.Net by a programmer who wouldn't learn Smalltalk (and the fact so many Smalltalkers are incompetant or unwilling to work for others and the few who do charge much larger sums for equivalent work). But you've shot yourself in the foot by your insulting posts suggesting I'm a "troll." Actually I own at least two Dolphin licenses, one for remote employees and one for myself. So I offer my Smalltalk code for six figures plus consulting fees at $100 an hour. If your bank account can handle it, I can send you a sample. Here's my direct email address: [hidden email] |
In reply to this post by Fernando Rodríguez
Fernando wrote:
<snip> > I've been looking for some production system (with forward chaining) > in Smalltalk, to avoid reinventing the flat tire, but haven't found > anything. I heard of something called 'nee opus', but not even Google > knows where it is now... :-( > > Any recommendations? O:-) > > Thanks try googling for: neopus smalltalk good luck, Pieter |
In reply to this post by Fernando Rodríguez
Fernando wrote:
> I've been looking for some production system (with forward chaining) > in Smalltalk, to avoid reinventing the flat tire, but haven't found > anything. I heard of something called 'nee opus', but not even Google > knows where it is now... :-( NeOpus is still on the Net, try these links: http://www-poleia.lip6.fr/~fdp/NeOpus.html http://www-ftp.lip6.fr/ftp/lip6/softs/NeOpus/ I don't know which (if either) is most up-to-date. -- chris |
In reply to this post by Fernando Rodríguez
Fernando,
> Ideally, and to preserve my sanity, I'd like to define those rules in > the most declarative way possible. If it sounds like I'm looking for > 'Smalltalk meets prolog', it's not entirely correct, as I don't need > backward chaining, only forward chaining. Have a look at this: http://minnow.cc.gatech.edu/squeak/1000 I've never used it, but would be interested in your experience with it. Have a good one, Bill -- Wilhelm K. Schwab, Ph.D. [hidden email] |
In reply to this post by DiegoC
"DiegoC" <[hidden email]> wrote
> What is the problem about reinventing wheels?. > Unfortunatly I've seen very different systems using the > same 30MB database driver or 100MB report tool. Perhaps you haven't tried to write your own database. I have and I sent it to others including a Russian graduate student to improve yet it is too slow to sell. So it is very difficult and time consuming to do a database right, making a plug-in a better choice for most programmers if the price is ok. However I suspect any programmer could make a report without a report writer easily. > It's cheaper and faster this way of working than using "building blocks". Maybe for some building blocks but not all. More importantly, there is the perception among the majority of programmers of all languages that "building blocks" is faster. So the building blocks used in other key languages should be available in D.6 for those who want to use them and programmers who want to reinvent them are always free to do so. Kirk Fraser |
Hi Kirk,
In my example I talked about building a driver not a database. I agree with you that building a database is a very time consuming task, but the main reason for not building a database is because is far better to work with objects instead of working with data. Working with Smalltalk you don't need databases, you don't want them. I also agree with you about what the majority thinks about building blocks, and of course thouse building blocks can be used by Dolphin (any version). But tha majority is used to programming languages, and Smalltalk is not a language, first of all is an ambience. BTW there are capabilities in Dolphin for interfacing COM components not available in VB6. For example you override COM methods or subclass them. Diego Coronel |
Hi Diego,
> Working with Smalltalk you > don't need databases, you don't want them. I need a bit of clarifying on this -- say you have a 3 Gig file of "stuff" which you can't have under WinXP -- only 2 G files are allowed. Is Smalltalk, particularly Dolphin, integrated enough with Windows to hold the entire file as a "serialized" string? Even if it can do it with the Windows OS using temp files, would the image file cross the 2 G boundary? I think not. So if there is a large amount of objects or data, then a database of some kind is required at least to manage the files they are stored in. Sorry, I'm not familiar with .com. Kirk Fraser |
In reply to this post by DiegoC
Diego,
> In my example I talked about building a driver not a database. I agree > with you that building a database is a very time consuming task, but the > main reason for not building a database is because is far better to work > with objects instead of working with data. Add to that the fact that query optimization alone is not for the uninitiated; I am content to leave that to those with expertise in the area. > Working with Smalltalk you > don't need databases, you don't want them. I disagree. I make very effective use of RDBs for what they do well: indexing (loosely speaking). The trick is to not mistake them for program development environments. Have a good one, Bill -- Wilhelm K. Schwab, Ph.D. [hidden email] |
Free forum by Nabble | Edit this page |