On Fri, 01 Jun 2007 19:09:05 -0600, "Marcus G. Daniels"
<marcus at snoutfarm.com> said: > Prof David West wrote: > > As an unmitigated object bigot I would claim that there is nothing in > > agents (or aspects for that matter) that did not exist in objects as > > objects were supposed to be. > Ideally, agents ought to have the ability to function as individuals > without coordination through schedulers, top down event loops, etc., the > ability to change their functioning over time (change their set of > active methods or implementations of them), and the ability to move > around and adapt to an environment. Seems to me multithreaded CLOS has > all this, but not all of that is thanks to objects. > > So how were objects supposed to be? Fully autonomous, intelligent, virtual computers. Intelligence included meta-intelligence (reflection). Of course this was a metaphor and and all implementations (including Smalltalk and Self) fell somewhat short in the early years. When ParcPlace finally realized that Java was a threat and not just a toy they released their lab technology that made the metaphor 95% realizable, but people had already stopped listening. An object should function as an individual (classes, class hierarchies were a kludge to facilitate semi-efficient implementation), should contain within itself the ability to work with other objects to obtain resources (memory, bus, cpu), handle its own message queuing, add/delete functions and knowledge at run-time, move, and adapt. A Smalltalk expression should be a first class object, hence be modifiable at run-time (through the actions of itself or other objects) and a Smalltalk program should be nothing more than a first class ordered collection - also modifiable at run-time. The only dependency to non-objectiveness is reliance on an intepreter - which can be extremely small and efficient. Objects should be able to interact with bare hardware and not rely on OS or other environments - like the Smalltalk image. I would content that all of this was possible in the nineties in Smalltalk. Not much of it has been utilized outside of the European Squeak (Alan Kay and Dan Ingalls rewritten Smalltalk) community. davew > > > ============================================================ > FRIAM Applied Complexity Group listserv > Meets Fridays 9a-11:30 at cafe at St. John's College > lectures, archives, unsubscribe, maps at http://www.friam.org |
Prof David West wrote:
> Objects should be able to interact with bare hardware and not rely on OS > or other environments - like the Smalltalk image. > With the resurgence of virtualized instruction sets, e.g. Java and .NET, and good hardware/software support via VMware, Parallels, KVM, and Xen, perhaps we can hope to see more high performance implementations of OOP as it was meant to be.. The Right Thing running fast bare on the hardware (almost). Just bought 16 GB of RAM for less than $2k. On a related topic, check out VMware Workstation 6 which now has trace and replay. No more guessing how to reproduce conditions that led to a model (or whatever) getting in to a weird state. Just back up! |
re: performance. Dave Thomas' company Object Technology International developed Smalltalk technology for embedded systems with real time performance equal to C code. He sold OTI to IBM and his technology became Visual Age Smalltalk, Va-Java, and Eclipse with another division of IBM utilizing the embedded technology. Noury Bourqadi in France is doing some very interesting things with tiny VMs running on hardware for highly distributed mini-platform (cell phones) networks. On Sat, 02 Jun 2007 14:02:52 -0600, "Marcus G. Daniels" <marcus at snoutfarm.com> said: > Prof David West wrote: > > Objects should be able to interact with bare hardware and not rely on OS > > or other environments - like the Smalltalk image. > > > With the resurgence of virtualized instruction sets, e.g. Java and .NET, > and good hardware/software support via VMware, Parallels, KVM, and Xen, > perhaps we can hope to see more high performance implementations of OOP > as it was meant to be.. The Right Thing running fast bare on the > hardware (almost). Just bought 16 GB of RAM for less than $2k. > > On a related topic, check out VMware Workstation 6 which now has trace > and replay. No more guessing how to reproduce conditions that led to a > model (or whatever) getting in to a weird state. Just back up! > > > ============================================================ > FRIAM Applied Complexity Group listserv > Meets Fridays 9a-11:30 at cafe at St. John's College > lectures, archives, unsubscribe, maps at http://www.friam.org |
In reply to this post by Marcus G. Daniels
mis-spelling in previous email -- Noury Bouraqadi <bouraqadi at ensm-douai.fr> On Sat, 02 Jun 2007 14:02:52 -0600, "Marcus G. Daniels" <marcus at snoutfarm.com> said: > Prof David West wrote: > > Objects should be able to interact with bare hardware and not rely on OS > > or other environments - like the Smalltalk image. > > > With the resurgence of virtualized instruction sets, e.g. Java and .NET, > and good hardware/software support via VMware, Parallels, KVM, and Xen, > perhaps we can hope to see more high performance implementations of OOP > as it was meant to be.. The Right Thing running fast bare on the > hardware (almost). Just bought 16 GB of RAM for less than $2k. > > On a related topic, check out VMware Workstation 6 which now has trace > and replay. No more guessing how to reproduce conditions that led to a > model (or whatever) getting in to a weird state. Just back up! > > > ============================================================ > FRIAM Applied Complexity Group listserv > Meets Fridays 9a-11:30 at cafe at St. John's College > lectures, archives, unsubscribe, maps at http://www.friam.org |
In reply to this post by Marcus G. Daniels
Hello
Months ago you had a discussion respect ABMs-OOP and you referred to some suitable languages. I wonder how appropriate are python and PHP5 to make simulations. ?Are comparable C++, smalltalk, ruby, python and PHP5 ? Although I've never seen a simulator written in php5 it seems to me that it's an interesting and promising tool for simulations. ?Are php5 OOP capabilities good enough for ABMs?, ? Am I in risk of being example of an everlasting amateur programmer death while trying ABMs with PHP5? Regards Alfredo Marcus G. Daniels wrote: >Prof David West wrote: > > >>Objects should be able to interact with bare hardware and not rely on OS >>or other environments - like the Smalltalk image. >> >> >> >With the resurgence of virtualized instruction sets, e.g. Java and .NET, >and good hardware/software support via VMware, Parallels, KVM, and Xen, >perhaps we can hope to see more high performance implementations of OOP >as it was meant to be.. The Right Thing running fast bare on the >hardware (almost). Just bought 16 GB of RAM for less than $2k. > >On a related topic, check out VMware Workstation 6 which now has trace >and replay. No more guessing how to reproduce conditions that led to a >model (or whatever) getting in to a weird state. Just back up! > > >============================================================ >FRIAM Applied Complexity Group listserv >Meets Fridays 9a-11:30 at cafe at St. John's College >lectures, archives, unsubscribe, maps at http://www.friam.org > > > -- -------------------------------- Alfredo Covaleda V?lez Ingeniero Agr?nomo Programador ******************************** Compre y venda sus libros en: http://www.loslibrosusados.com ******************************** Too many waiting for that lucky break (PM) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://redfish.com/pipermail/friam_redfish.com/attachments/20080122/3935f070/attachment.html |
The issue is not so much on programming language. In theory any
universal language is sufficient. In practice, object orientedness helps a lot. Also needed are a range of plugin tools and libraries, such as graph visualisers, statistics accumulators and the like, which is where the frameworks come into play. And a necessary precursor for these to work is some kind of runtime reflection so that agent (object) structure can be inferred by the tool. At this stage, there are only a limited number of environments available, corresponding to an assortment of Java environments, a few logo environments, and one each of Objective C, C++ and Smalltalk environments. I would suspect that you would end up having to replicate a lot of what is done in Swam, Repast or EcoLab by choosing another language such as PHP, but if that is your bent, then there's nothing stopping you. Cheers On Tue, Jan 22, 2008 at 12:33:38AM -0500, Alfredo Covaleda V wrote: > Hello > > Months ago you had a discussion respect ABMs-OOP and you referred to > some suitable languages. I wonder how appropriate are python and PHP5 > to make simulations. ?Are comparable C++, smalltalk, ruby, python and PHP5 ? > > Although I've never seen a simulator written in php5 it seems to me that > it's an interesting and promising tool for simulations. ?Are php5 OOP > capabilities good enough for ABMs?, ? Am I in risk of being example of > an everlasting amateur programmer death while trying ABMs with PHP5? > > Regards > > Alfredo > -- ---------------------------------------------------------------------------- A/Prof Russell Standish Phone 0425 253119 (mobile) Mathematics UNSW SYDNEY 2052 hpcoder at hpcoders.com.au Australia http://www.hpcoders.com.au ---------------------------------------------------------------------------- |
In reply to this post by Alfredo Covaleda-2
Alfredo Covaleda V wrote:
> Months ago you had a discussion respect ABMs-OOP and you referred to > some suitable languages. I wonder how appropriate are python and PHP5 > to make simulations. ?Are comparable C++, smalltalk, ruby, python and > PHP5 ? The odd one out there is C++, which is isn't dynamically typed like the others. Basically that constraint makes it easier for the compiler to optimize for speed but makes the process of modeling more rigid. Dynamic typing may be a benefit or a drawback depending on your perspective. If your goal is to test a specific hypothesis, using a very specific simulation, you probably won't care about dynamic typing. On the other hand, if you are trying to use the computer to poke around a space and understand relations intuitively, and incrementally tweak rules, you'll probably find it useful. Btw, today there was a new `Parrot' release, the new dynamic virtual machine underlying Perl 6. One interesting feature of this runtime is that the set of `opcodes' is mutable: http://www.parrotcode.org/faq/ http://www.sidhe.org/~dan/blog/archives/000409.html Seems like this could be an interesting way to set up an ABM system -- actual bytecodes for agent step instructions, etc. Marcus |
On Mon, Jan 21, 2008 at 11:22:33PM -0700, Marcus G. Daniels wrote:
> Alfredo Covaleda V wrote: > > Months ago you had a discussion respect ABMs-OOP and you referred to > > some suitable languages. I wonder how appropriate are python and PHP5 > > to make simulations. ?Are comparable C++, smalltalk, ruby, python and > > PHP5 ? > The odd one out there is C++, which is isn't dynamically typed like the > others. Basically that constraint makes it easier for the compiler to > optimize for speed but makes the process of modeling more rigid. EcoLab gets around this using a technology called Classdesc, which provides the necessary reflection capability, without sacrificing the speed advantages of C++. > Dynamic typing may be a benefit or a drawback depending on your > perspective. If your goal is to test a specific hypothesis, using a > very specific simulation, you probably won't care about dynamic typing. > On the other hand, if you are trying to use the computer to poke around > a space and understand relations intuitively, and incrementally tweak > rules, you'll probably find it useful. > Indeed. I would argue that most scientific modelling is poking around a space - automated, or dynamic reflection is essential to reduce the amount of workload required of the programmer. Its one of the reasons I worked so hard on developing Classdesc, the others being that Objective C didn't turn me on much, and Repast hadn't been developed when I started. Oh, and I really found I couldn't do without operator overloading. Cheers -- ---------------------------------------------------------------------------- A/Prof Russell Standish Phone 0425 253119 (mobile) Mathematics UNSW SYDNEY 2052 hpcoder at hpcoders.com.au Australia http://www.hpcoders.com.au ---------------------------------------------------------------------------- |
In reply to this post by Alfredo Covaleda-2
Hi Alejandro,
The best language for ABM is the one you know. :-) BTW, a few years back we did an ABM-like php script that laid out labels in a scatterplot to minimize label overlaps. You can see examples of the script running with optimized and non-optimized versions here: http://www.redfish.com/projects/BostonLearning/rfGraph/examples.html The .php code is attached and support files can be downloaded from here: http://www.redfish.com/projects/BostonLearning/rfGraph/ > Although I've never seen a simulator written in php5 it seems > to me that it's an interesting and promising tool for > simulations. ?Are php5 OOP capabilities good enough for > ABMs?, ? Am I in risk of being example of an everlasting > amateur programmer death while trying ABMs with PHP5? -------------- next part -------------- A non-text attachment was scrubbed... Name: matrix.php Type: application/octet-stream Size: 10819 bytes Desc: not available Url : http://redfish.com/pipermail/friam_redfish.com/attachments/20080122/f18efb32/attachment.obj |
In reply to this post by Alfredo Covaleda-2
In a word, "Yes". You will be consigned to everlasting amateur programmer
death. On the other hand, you can fake OO programing methodologies in just about any language, and you can force-fit just about any implementation into whatever the paradigm du Jour happens to be. But, if you want to do a job properly, you need the right tools. If you just want to build a toy ABM on top of an OO software design, then there are plenty of "toy" languages available to play with. See http://en.wikipedia.org/wiki/Object-oriented_programming_language for a good list of all the choices. Some are mature languages; others aren't. Some provide full-featured OO environments; others don't. If you want to build a professional ABM system for a real-world application that will be maintainable, scalable, extensible, etc. then the list of appropriate tools is much shorter. Throw in features necessary to support running the ABM in an HPC environment and the list is shorter still. The appropriate choice of OO language for implementing your ABM will depend on what use you intend for the application. In considering the above opinion, as always, Your Mileage May Vary. --Doug -- Doug Roberts, RTI International droberts at rti.org doug at parrot-farm.net 505-455-7333 - Office 505-670-8195 - Cell On Jan 21, 2008 10:33 PM, Alfredo Covaleda V <acovaleda at loslibrosusados.net> wrote: > Hello > > Months ago you had a discussion respect ABMs-OOP and you referred to some > suitable languages. I wonder how appropriate are python and PHP5 to make > simulations. ?Are comparable C++, smalltalk, ruby, python and PHP5 ? > > Although I've never seen a simulator written in php5 it seems to me that > it's an interesting and promising tool for simulations. ?Are php5 OOP > capabilities good enough for ABMs?, ? Am I in risk of being example of an > everlasting amateur programmer death while trying ABMs with PHP5? > > Regards > > Alfredo > > > > > > Marcus G. Daniels wrote: > > Prof David West wrote: > > > Objects should be able to interact with bare hardware and not rely on OS > or other environments - like the Smalltalk image. > > > > With the resurgence of virtualized instruction sets, e.g. Java and .NET, > and good hardware/software support via VMware, Parallels, KVM, and Xen, > perhaps we can hope to see more high performance implementations of OOP > as it was meant to be.. The Right Thing running fast bare on the > hardware (almost). Just bought 16 GB of RAM for less than $2k. > > On a related topic, check out VMware Workstation 6 which now has trace > and replay. No more guessing how to reproduce conditions that led to a > model (or whatever) getting in to a weird state. Just back up! > > > ============================================================ > FRIAM Applied Complexity Group listserv > Meets Fridays 9a-11:30 at cafe at St. John's College > lectures, archives, unsubscribe, maps at http://www.friam.org > > > > -- > > -------------------------------- > Alfredo Covaleda V?lez > Ingeniero Agr?nomo > Programador > ******************************** > Compre y venda sus libros en: > http://www.loslibrosusados.com > ******************************** > Too many waiting for that lucky break (PM) > > > ============================================================ > FRIAM Applied Complexity Group listserv > Meets Fridays 9a-11:30 at cafe at St. John's College > lectures, archives, unsubscribe, maps at http://www.friam.org > An HTML attachment was scrubbed... URL: http://redfish.com/pipermail/friam_redfish.com/attachments/20080122/70c736e4/attachment.html |
Douglas Roberts wrote:
> Some are mature languages; others aren't. Some provide full-featured > OO environments; others don't. The mainstream, mature choices for performance code are basically C++/Emacs, C#/Windows Visual Studio, Objective C/Apple XCode, and Java/Sun JDK/Eclipse, and in about that order of code performance. Also a commercial compiler for OO Fortran (2003) may be worth thinking about in HPC environments. In principle, it's possible to use native code compilers with Java, but in practice you'll work just as hard as you would with C++ for performance, and probably harder. Other languages provide more versatility/abstraction/safety/convenience, but haven't yet tried to make self-contained quality code generators. When they can generate true executables, they usually do it by generating C and then compiling that. (There are some exceptions, like F#.) I would not say this merits the name `toy language', but rather a different emphasis. Python and Perl are certainly mature languages with rich ecologies around them. When modeling, you are in some sense trying to invent a language to describe and predict something that interests you. Not learning about the ways people have found to implement algorithms (different programming languages) may not be helpful in the long run, depending how deep you expect to get into ABM. Marcus |
In reply to this post by Douglas Roberts-2
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1 Douglas Roberts on 01/22/2008 05:37 AM: > The appropriate choice of OO language for implementing your ABM will depend > on what use you intend for the application. It literally amazes me... yes, I know that phrase is a bit of a platitude; but it really does catch me off-guard ... that people don't know this fact... or sporadically forget it. Everything you do fundamentally depends on why you're doing it. It's so simple, it's cliche'. But there are so many reasons to forget it. For example, some people become familiar with one tool and, from that point forward, use only that tool regardless of their purpose. Some people believe they can't successfully use a tool they don't understand intimately; so they throw up a psychological barricade. Some people invest so much of their time, energy, reputation, and money in some domain or tool that conservatism kills them in the end. Still others just bite off more than they can chew by (unjustifiably) believing that they can "get by" with whatever crap lies at hand and refusing to admit that they need to do serious infrastructure work to achieve their objectives. Some go to extraordinary lengths to coerce a tool into something it's not. ("My hammer is the best screwdriver on the planet!" ;-) And some just get too comfortable living off the returns on past investment that they fade away. Hence, my answer to Alfredo's question differs a bit from the others. There's only one way to know how well you will do at developing ABM models with PHP. Do it! If you don't do it (yourself), then you'll never know... you'll be at the mercy and whim of "experts"... who, for the most part, don't know any better than you do. And if you admit up front that you don't care enough, don't have the time, don't have the money, don't have the energy, hate to "fail", etc. to actually _waste_ your time trying to do the work yourself, then you already have the answer. If you're thinking that way, then most everyone else is thinking that way, too. - -- glen e. p. ropella, 971-219-3846, http://tempusdictum.com The state is the great fictitious entity by which everyone seeks to live at the expense of everyone else. -- Fr?d?ric Bastiat -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFHli9MZeB+vOTnLkoRAmUfAKCuVTuJMIjWV1V1SHcjNBZtgQLvQACgyBhf gjp+eH9fNs8KkfESOoRbP6I= =h/SC -----END PGP SIGNATURE----- |
Free forum by Nabble | Edit this page |