I'm playing Planescape:Torment under parallels on my iMac. Works great. You'll have to fiddle with the graphic settings in the VM to allow it to change resolutions if you want to run it in its fullscreen glory. The speed is quite acceptable. There are a few graphical "turdlets" when you are moving the mouse around, but these are easily ignored (at least for me).
Miguel,
It turns out that your reflection might be beautiful. The actual problem is in the Mono VM. Go to the #Smalltalk download page where we have the details and a dump from the error.
don
P.S. You do good work. It's stupid that your post got modded down
#Smalltalk should run on any MS-compatible.NET implementation. (which right now is exactly 1). It generates.EXE files, which can run on any.NET platform (if it is compatible). Under windoze it can also generate.DLL's, but doesn't have to.
We see #Smalltalk and Squeak as alternatives. #Smalltalk exists because 1) We always wanted to write our own st 2).NET provided a VM, garbage collector, class library, GUI and all the nastyness that we weren't interested in but makes a system useful 3) We've done our share of VB programming (don't laugh) and there's a lot of things that are easy in VB that are harder in other languages..NET captures a lot of that flavor. 4) It's done by MS, so like it or not, it will probably become the next de facto standard that is shoved down everyone's throats 5) We might get consulting work writing.NET programs but doing in a language that doesn't suck.
As for the optimization mentioned on the web page...we would envision it working like the current smalltalks (failing over to LargeIntegers). Right now we create full-blown boxed integers for each iteration (not even a tagged representation), and are pretty happy with the performance despite having to create 1000 "real" objects.
The first keyword is the original.Net method name. Additional keywords can be anything you want. For example, WebClient in.net has a method named DownloadFile that takes the url and the filename to download to. In C# you would say webclient.DownloadFile("http://slashdot.org","foo. txt"). The equivalent call in #Smalltalk is webclient DownloadFile: 'http://slashdot.org' to: 'foo.txt'. The to: keyword is arbitrary, I could have called it foo: and the call would still work so long as the first keyword was DownloadFile. Contructors are similar 0-arg constructors are invoke by the "new" message (as you would expect). Multiple arg constructors are called by adding more (arbitrary keywords). For example, to create a.NET point: System.Drawing.Point new: 3 y: 5.
I believe that it's been tested on rotor and doesn't quite work. Rumor is that the Reflection API isn't quite up to snuff. Feel free to experiment with it and help us get it working on that platform too.
To be fair...we implement most of the Smalltalk collections by wrapping a smalltalk object around a.NET object. But we aren't a Smalltalk->C# translator, we generate "native" msil:).
1. That's up to the Mono or dotGNU people. We use the Reflection API A LOT and the current implementation on those platforms isn't quite up to snuff.
2. This differs almost none. We love smalltalk tried to recreate the experience as much as possible. It does not currently come with an IDE (that's the next step). We've been using other Smalltalk's to edit the applications that we then export as.sif files and then compile. (Heck...people have been bugging us for years to make the RB more like emacs...they got their wish:) ). You can debug it using the standard CLRDBG program from M$. This gives you single stepping, inspecting, and even code evaluation (as long as you express the code in C#'esque syntax). You can override DNU and it works. I don't think that you can do all the really ugly tricks that ST'ers abuse.
3. It differs from S# (same thing as SmallScript since Dave took the name) in the following ways. 1) As true as possible to st80 2) Open Source 3) Free (as in beer)
The beauty of it all is that you can program in real, honest to goodness Smalltalk, and when you decide you need to call other.NET objects, you can still use ST syntax. For example, to use the.NET MessageBox class, in C# you would write System.Windows.Forms.MessageBox.Show("Hello World"); in #Smalltalk you write System.Windows.Forms.MessageBox Show: 'Hello World'.
I have starband, and I, too, live in an extremely rural area. I'm satisfied with it. I haven't seen the reliability issues that others complain about and I get anywhere from ~150kbs to >600kbs download times depending on the time of day, etc. Web surfing feels pretty snappy modulo the initial start time (due to satellite latency). I also have never seen any bandwith throttling by the providers, (and I've downloaded a couple.iso's).
Having said all of that, you need to realize the following facts: - You can't beat physics. The signal has to travel 45,000 miles. Your ping times will never be below 600ms. Therefore, this cannot be used for real-time, reaction-based gaming. - Heavy rain kills the connection. - PtP stuff seems to only work marginally (I have had some success with it, but also, I haven't experimented extensively). - The 360 modem (the only option) does have both USB and ethernet connection, HOWEVER all of its acceleration is done by Windows drivers and the modem must be DIRECTLY CONNECTED to the windows box. If you want to home network, you have to install a second network card and use the windoze box as your gateway. Therefore, linux boxes can be on your network, but you have to have a windoze box to drive the modem.
Hope this help.
Don Roberts roberts@refactory.com The Simplest Consultant That Could Possibly Work
Yes, but if you want an @ it's an IAP.
I'll sell you my Newton...It's close to those dimensions.
I'm playing Planescape:Torment under parallels on my iMac. Works great. You'll have to fiddle with the graphic settings in the VM to allow it to change resolutions if you want to run it in its fullscreen glory. The speed is quite acceptable. There are a few graphical "turdlets" when you are moving the mouse around, but these are easily ignored (at least for me).
Miguel,
It turns out that your reflection might be beautiful. The actual problem is in the Mono VM. Go to the #Smalltalk download page where we have the details and a dump from the error.
don
P.S. You do good work. It's stupid that your post got modded down
#Smalltalk should run on any MS-compatible .NET implementation. (which right now is exactly 1). It generates .EXE files, which can run on any .NET platform (if it is compatible). Under windoze it can also generate .DLL's, but doesn't have to.
.NET provided a VM, garbage collector, class library, GUI and all the nastyness that we weren't interested in but makes a system useful 3) We've done our share of VB programming (don't laugh) and there's a lot of things that are easy in VB that are harder in other languages. .NET captures a lot of that flavor. 4) It's done by MS, so like it or not, it will probably become the next de facto standard that is shoved down everyone's throats 5) We might get consulting work writing .NET programs but doing in a language that doesn't suck.
We see #Smalltalk and Squeak as alternatives. #Smalltalk exists because 1) We always wanted to write our own st 2)
As for the optimization mentioned on the web page...we would envision it working like the current smalltalks (failing over to LargeIntegers). Right now we create full-blown boxed integers for each iteration (not even a tagged representation), and are pretty happy with the performance despite having to create 1000 "real" objects.
Hope this answers your questions.
don
The first keyword is the original .Net method name. Additional keywords can be anything you want. For example, WebClient in .net has a method named DownloadFile that takes the url and the filename to download to. In C# you would say webclient.DownloadFile("http://slashdot.org","foo. txt"). The equivalent call in #Smalltalk is webclient DownloadFile: 'http://slashdot.org' to: 'foo.txt'. The to: keyword is arbitrary, I could have called it foo: and the call would still work so long as the first keyword was DownloadFile. Contructors are similar 0-arg constructors are invoke by the "new" message (as you would expect). Multiple arg constructors are called by adding more (arbitrary keywords). For example, to create a .NET point: System.Drawing.Point new: 3 y: 5.
hope this helps.
don
I believe that it's been tested on rotor and doesn't quite work. Rumor is that the Reflection API isn't quite up to snuff. Feel free to experiment with it and help us get it working on that platform too.
don
To be fair...we implement most of the Smalltalk collections by wrapping a smalltalk object around a .NET object. But we aren't a Smalltalk->C# translator, we generate "native" msil :).
don
1. That's up to the Mono or dotGNU people. We use the Reflection API A LOT and the current implementation on those platforms isn't quite up to snuff.
.sif files and then compile. (Heck...people have been bugging us for years to make the RB more like emacs...they got their wish :) ). You can debug it using the standard CLRDBG program from M$. This gives you single stepping, inspecting, and even code evaluation (as long as you express the code in C#'esque syntax). You can override DNU and it works. I don't think that you can do all the really ugly tricks that ST'ers abuse.
.NET objects, you can still use ST syntax. For example, to use the .NET MessageBox class, in C# you would write System.Windows.Forms.MessageBox.Show("Hello World"); in #Smalltalk you write System.Windows.Forms.MessageBox Show: 'Hello World'.
2. This differs almost none. We love smalltalk tried to recreate the experience as much as possible. It does not currently come with an IDE (that's the next step). We've been using other Smalltalk's to edit the applications that we then export as
3. It differs from S# (same thing as SmallScript since Dave took the name) in the following ways. 1) As true as possible to st80 2) Open Source 3) Free (as in beer)
The beauty of it all is that you can program in real, honest to goodness Smalltalk, and when you decide you need to call other
Thanks and Enjoy
don
Actually, the previous mention was for our competitor's language, S#. Our's is #Smalltalk.
Don Roberts
roberts@refactory.com
The Simplest Consultant That Could Possibly Work
ISO9000: Where quality is measured by board-feet of documentation.
The problem is that the 180 modem is no longer allowed on the network, so, sadly, this option is no longer available. (It worked really well, though)
Don Roberts
roberts@refactory.com
The Simplest Consultant That Could Possibly Work
I have starband, and I, too, live in an extremely rural area. I'm satisfied with it. I haven't seen the reliability issues that others complain about and I get anywhere from ~150kbs to >600kbs download times depending on the time of day, etc. Web surfing feels pretty snappy modulo the initial start time (due to satellite latency). I also have never seen any bandwith throttling by the providers, (and I've downloaded a couple .iso's).
Having said all of that, you need to realize the following facts:
- You can't beat physics. The signal has to travel 45,000 miles. Your ping times will never be below 600ms. Therefore, this cannot be used for real-time, reaction-based gaming.
- Heavy rain kills the connection.
- PtP stuff seems to only work marginally (I have had some success with it, but also, I haven't experimented extensively).
- The 360 modem (the only option) does have both USB and ethernet connection, HOWEVER all of its acceleration is done by Windows drivers and the modem must be DIRECTLY CONNECTED to the windows box. If you want to home network, you have to install a second network card and use the windoze box as your gateway. Therefore, linux boxes can be on your network, but you have to have a windoze box to drive the modem.
Hope this help.
Don Roberts
roberts@refactory.com
The Simplest Consultant That Could Possibly Work