Hernan,
If you rename Smalltalk... It will be smalltalk. Smalltalk is the "last language", to put it in the terms you all love (to name it a language :). Why Smalltalk is "the last XXXXX" ? (place language, environment, ambient instead of XXXXX) To work "in" Smalltalk is to work preserving the IDENTITY of the XXXXX. You can change any piece, but the change will do the system more or less stabe... but will be the SAME system. It preserves it's identity. And preservation of the identity of the hole is preceived as evolution, defines an history.. and do not require to be "redefined" as languages. A language (as any formal system), when changed defines a NEW language. A new language because rules defines a closed system, and if you change a rule, you defines another system without any relation, in practice, with the old. Languages are born to be replaced. Smalltalk can be changed and if it survives the change, the change become part of it but the XXXX preserve it's identity (the same way anObject preserves identity) A language exists if there is any person that use it's syntax. Smalltalk exists if there is at least an image runing. The vertical propagation of smalltalk habbits defines a "formula" that limits smalltalk propagation. The importance of marketing for smalltalk will be proved after one or two observable cases. best, Ale. ----- Original Message ----- From: "Hernan Wilkinson" <[hidden email]> To: "The general-purpose Squeak developers list" <[hidden email]> Sent: Friday, May 12, 2006 12:12 PM Subject: Re: Smalltalk: Requiem or Resurgence? {Dr. Dobb's Journal (05/06/06) Chan, Jeremy} > Hi, > I could not read the whole thread, but I will give my opinion on > this topic. Sorry if I say something somebody already said. > I think the problem with Smalltalk is not technical, nor a problem > of education either. We all now that Smalltalk has nothing to envy from > Java, C++, .Net and the like, but the other way around. We all know that > Smalltalk has a great VM, has a great environment and tools and no other > main stream language can compete with Smalltalk on this features. > Smalltalk can be use in large project (it is not true that only > scale in small projects, we have a project with 7155 classes and works > great!... I can not image a Java project of 7155 files...) and I see > that Smalltalk is not difficult to learn. Every time we contract a > junior programmer, they feel fine with the language in a period of two > weeks... so, the syntax is not a problem, not the class library or the > debugger, etc. > The problem with Smalltalk is a MARKETING problem, no technical. We, > people of the computer field, like to have new things all the time... we > like to have new widgets like mp3 players, palms, cell phones, smaller > and faster laptops, etc. "New" it is almost a synonym of "Better", but > more important, "new" means "cool".... Because of this, most programmer > think that new languages are better, just because they are new they are > "more cool". So, the problem with Smalltalk is that it is OLD. > Let's take Ruby as example, is it better than Smalltalk? We all now > that it is not.... Perl? no... Phyton?, no... What's the difference? > They are newer... Now Ruby seems to be getting a great attention... why? > just because Ruby On Rails?. I believe Ruby On Rails is helping to get > the attention, but Ruby is a "new" language (at least, it does not have > a long history), and that helps, and compared with Smalltalk, it is > The word Smalltalk has a history, and almost everybody relates that > word to not sucessful histories (I believe, they do it wrongly). Every > time you say "we use Smalltalk", people ask "Isn't that a language for > university only?", "Isn't that language old? how does it integrate to > databases? can you do web apps with Smalltalk?", etc.... So, I have came > to a sadly conclusion, Smalltalk will never be a main stream language > because it is OLD. > Therefore, my CRAZY suggestion is to create a NEW language, a new > language that we can name it "COOL" (because it is cool ;-) ), but this > new language is, at the end, Smalltalk... but nobody has to know it! > nobody has to relate it to Smalltalk because if they do it, it will > loose all its "momentum"... With a NEW language, that it is COOL at the > same time, and of course, with a little bit of help from one big > company, COOL will be widely accepted... and nobody will care about its > technical aspects as most people don't do with the current main-stream > languages. > > Anyway, just an opinion... > Bye, Hernan. > > > > Ralph Johnson wrote: > > > People keep mentioning technical aspects of Smalltalk as being the > > ones that will make people want to use it. Technologists are > > interested in technology, so this is not surprising. However, people > > are more important than technology. If Smalltalk is going to have a > > resurgence, the people who know and love Smalltalk will have to make > > it happen. It isn't going to happen automatically. Jeremy Chan is > > right to emphasize people problems like "no big company is pushing > > it". > > > > Every tool has its stengths and weaknesses. To make Small prosper, > > people should use it where it works and not use it where it doesn't > > work. Smalltalk is fantastic in small groups of motivated > > programmers. It is not so good in large groups with high turnover. > > People seem to get excited about large Smalltalk projects, and to long > > for the days of ten years ago when there were 100 person projects. In > > my opinion, those projects were never run well, and were probably all > > a mistake. Many of them were successful in the sense of bringing a > > product to market, but all the ones I saw could have been done faster > > and cheaper with a smaller team. > > > > Smalltalk fans ought to go start companies. Smalltalk has lots of > > advantages in a startup, where it is important to get something > > running quickly and where compatibility with existing systems is not > > so important. It doesn't work as well in a big company, where it is > > iimportant to play it safe and there are existing standards and lots > > of existing systems. > > > > Smalltalk is a wonderful language both for teaching and for research. > > I've always wondered why it did so poorly in universities. I think > > that one of the reasons is that it is hard to learn. There are too > > many things about Smalltalk that are new. The language is easy, but > > the class libraries are large, and the programming environment is > > different from what people are used to. People are not used to "live > > objects" and do not know how to take advantage of them. The class > > library is not modularized, so it is hard for newcomers to see what to > > learn first. > > > > Smalltalk is pretty easy to learn if you are pair programming with an > > expert whose main goal is for you to learn, not to build a system. It > > is hard to learn from a book and from experimentation. I taught > > myself Smalltalk 20 years ago and have since taught it to a thousand > > or so students. I tell my students that they all will learn Smalltalk > > faster than I did, because they will have a teacher. This is not 100% > > true, since some students didn't try very hard. But it is pretty easy > > to learn when you have a teacher who knows Smalltalk well. One of the > > problems with getting it used in schools is that somebody has to teach > > the teachers. > > > > So, if you want to help Smalltalk spread, sit down and program with a > > newbie! > > > > -Ralph Johnson > > > > > > > > > -- > ______________________________ > Lic. Hernán A. Wilkinson > Gerente de Desarrollo y Tecnología > Mercap S.R.L. > Tacuari 202 - 7mo Piso - Tel: 54-11-4878-1118 > Buenos Aires - Argentina > http://www.mercapsoftware.com > --------------------------------------------------------------------- > Este mensaje es confidencial. Puede contener informacion amparada > por el secreto profesional. Si usted ha recibido este e-mail por error, > por favor comuniquenoslo inmediatamente via e-mail y tenga la > amabilidad de eliminarlo de su sistema; no debera copiar el mensaje > ni divulgar su contenido a ninguna persona. Muchas gracias. > > This message is confidential. It may also contain information that is > privileged or otherwise legally exempt from disclosure. If you have > received it by mistake please let us know by e-mail immediately and > delete it from your system; you should also not copy the message nor > disclose its contents to anyone. Thanks. > --------------------------------------------------------------------- > > |
In reply to this post by Trygve
Oh OK, I thought perhaps the failing of the URL had indicated something, or
that something had gone wrong with your browser, but had no idea which. I didn't mean to sound difficult or anything. frank "Trygve Reenskaug" <[hidden email]> wrote: > My sincere apologies. It must be something with the setup of my browsers. > So my experience doesn't illustrate anything. > --- Trygve > > > At 15:06 12.05.2006, you wrote: > >"Trygve Reenskaug" <[hidden email]> said: > > > > > > At 13:51 12.05.2006, Bert wrote: > > > > > > ++++++ > > > > > > >>For all practical purposes, a desktop application written in squeak > > > >>will only be used by squeak programmers. Note the term: "desktop > > > >>application". > > > > > > > >And I think you'll be proven wrong with Sophie: > > > > > > > > http://www.geeksrus.com/sophie/2006-05-09.html > > > > > > > >- Bert - > > > > > > > > > An excellent illustration to this thread. 2006-05-09.html doesn't work > > > my Opera web browser and it crashes my IE. > > > >Does the page not working illustrate something? What does it illustrate? It > >opens just fine in my Opera (8.51, on Windows 2k). The video doesn't work, > >probably because I've got an ancient QuickTime, but that's beside the point. > > > >frank > > > -- > > Trygve Reenskaug mailto: [hidden email] > Morgedalsvn. 5A http://heim.ifi.uio.no/~trygver > N-0378 Oslo Tel: (+47) 22 49 57 27 > Norway > > > > |
In reply to this post by Hans-Martin Mosner
You are correct. Smalltalk is much more like an OS than just a language.
That is part of the issue. Unix in many ways could have been much more successful had there been more to the standard library. That is a large part of why Java/.Net are doing so well. .Net because it has Microsoft behind it and runs on 90% of the desktops out there. Java because it runs on all the platforms out there. If it were not for vendor introduced bugs (Apple & IBM VMs being different from Sun's VM) it would be almost as portable as an ST-80 image. It also helps open source efforts like Squeak to have commercial interests involved. Because Squeak is a separate platform that becomes harder to make happen. For example Gemstone supports VW but not Squeak or Dolphin because the effort required to port vs. the customer need. If it was easier to port then there would be more opportunity to get vendors to support all the platforms and a larger ecosystem would result. Michael -----Original Message----- From: [hidden email] [mailto:[hidden email]] On Behalf Of Hans-Martin Mosner Sent: Friday, May 12, 2006 1:46 PM To: The general-purpose Squeak developers list Subject: Re: Smalltalk: Requiem or Resurgence? {Dr. Dobb's Journal (05/06/06) Chan, Jeremy} Michael Latta wrote: >The point is not who's design is better, nor technical issues. The point is >that from a user of the system the differences in libraries has negative >value. I do not know or care which is better. I do know that if I could >take Smalltalk code form one VM to another the market for my work would be >larger. The way each VM vendor has chosen to head in their own direction >means that they do not build a viable ecosystem. Each vendor's product >stands alone, and has to build its own ecosystem. > The problem with this comparison is that it is treating Smalltalk as a programming language. It's much easier if you treat it like an operating system or a SQL database - it's a platform. In theory, your C program should just run on HP-UX, Linux, AIX, Windows, MacOSX, RiscOS, AmigaOS, ... Why did all those operating system vendors invent incompatible system calls, libraries, file system conventions? Or why can't you just take your SQL application from ORACLE to MySQL or Sybase? After all, SQL is a standard! I don't know enough about SQL, but at least in the operating system world you can achieve a lot of portability by sticking to POSIX which is supported on most platforms. Similarly, you get pretty good portability in Smalltalk by sticking to the ANSI Smalltalk subset. Of course, GUI widgets etc. are not included in that standard and so are non-portable. But does POSIX include standard GUI widgets? Can you write a GUI application in C and port it from Linux to Windows without a lot of work? I agree with you that it would be great to have easier portability between the different Smalltalk systems, so you could switch platforms when needed without too much work. But in reality, switching between platforms has never been easy. Actually, the closest thing to effortless platform migration was/is *Smalltalk* with its image file which can be run unchanged on a large number of platforms! I've done it with VisualWorks, Squeak and VisualAge. The two Smalltalk-80 descendants provide much easier migration (just snapshot your image and start up on another machine) but VisualAge is pretty doable as well as long as you're willing to work around the quirks of the different native widgets under OS/2, Windows and Unix/X. Cheers, Hans-Martin |
In reply to this post by Andreas.Raab
> And how exactly do you know that? Do you know anything at all about how > the FFI evolved, which tradeoffs were made for what? Where can we read details on FFI? I am interested becasue I feel that the FFI implementation requires Assembly code to be compiled. Is it true? Is there any "slow" code in slang for platforms that do not have easy assemblers? thanks in advance, Ale. ----- Original Message ----- From: "Andreas Raab" <[hidden email]> To: "The general-purpose Squeak developers list" <[hidden email]> Sent: Friday, May 12, 2006 5:07 PM Subject: Re: Smalltalk: Requiem or Resurgence? {Dr. Dobb's Journal (05/06/06) Chan, Jeremy} > Michael Latta wrote: > > There are some differences based on VM design and VW has chosen to redesign > > the entire way that classes are defined. But, to a user it should all work > > if it is Smalltalk. The COM integration for example on VW and Dolphin do > > not need to be different, and Squeak did not have to use a different way to > > call native methods. > > And how exactly do you know that? Do you know anything at all about how > the FFI evolved, which tradeoffs were made for what? > > - A. > |
Alejandro F. Reimondo wrote:
> Where can we read details on FFI? Below ;-) > I am interested becasue I feel that the FFI implementation > requires Assembly code to be compiled. > Is it true? That depends on whether you mean it literally or figuratively. For running the FFI there is a bit of per-platform support code needed, some of which (the actual call-out) is typically implemented directly in machine code and written using assembler. > Is there any "slow" code in slang for platforms that do not have > easy assemblers? The FFI is (like many other parts of Squeak) "incomplete" in such that it requires a bit of extra support code to implement the actual ABI (e.g., setting up the call stack, calling the function, popping args from the stack etc). This is handled in the platform specific files (see sqWin32FFI.c for an example) and requires some 20 functions or so to work (most of those are trivial but provided just in case some platform has odd behavior wrt. to some data type). It is certainly possible to implement much of it without the use of assembler. For example, if a platform basically passes everything as words (32bit ints) you could do something like here: int args[MAX_ARGS]; int argCount; /* take an int as next argument */ int ffiPushSignedInt(int value) { args[argCount++] = value; return 1; } /* tons of other int types eliminated for brevity here */ int ffiPushSingleFloat(double value) { /* this will push the 32bit equiv. of the float value */ float single = (float) value; ffiPushSignedInt(*(int*)(&single)); return 1; } /* ... double works just the same way; 2x32bit entity ...* /* ... structures ditto ...*/ /* finally, do the actual callout */ int ffiCallAddress(int fn) { switch(argCount) { case 1: return ((int(*)(int))fn)(args[0]); case 2: return ((int(*)(int, int))fn)(args[0], args[1]); case 3: return ((int(*)(int, int))fn)(args[0], args[1], args[2]); /* ... etc ... */ } This will work just fine and requires no assembler but so far I haven't found any platform where things would be as simple as that (both Intel as well as PPC have more complex rules than can be reasonably modeled by this technique). But if you happen to have a platform where things are that simple (or if it's okay to restrict yourself to a subset that can be modeled as simply) that's certainly an option. Cheers, - Andreas |
In reply to this post by Hernan Wilkinson
Hernan, I agree with you in a lot of points... but disagree in others
(and since my English is not good, I prefer to explain my point using very poor sentences). On 5/12/06, Hernan Wilkinson <[hidden email]> wrote: > (...) > I have worked with Assembler, C, C++, Java and some C#... but Smalltalk > is a "one way street". You take it and when you understand it, you don't > want to go back. This kind of responses are not helping in "marketing"... :P Yes, in Smalltalk we work different, but not because "we saw the light". Is just because we have learned the "code" of the language. (It reminds me the theory of Bernstein in education, see: http://www.doceo.co.uk/background/language_codes.htm). So I think that instead of saying: "go learn! before talk", we have to understand how is the process of learning smalltalk, to communicate it better to newbies. > (..) > > If you mean the hole environment, then I can't agree with you. > > One thing Java and .Net have in common, C++ is trying to get and > > Smalltalk is missing, is a standard > > library set. Every dialect of Smalltalk has its own set. > > I don't see this as a problem. The main classes are similar and I don't > go from one Smalltalk to other coding. We develop in with one Smalltalk, > why would I need to use other Smalltalk?. I think that "standardized" APIs are too restrictive.Because no one wants to change it...just to follow the standard (ie. the DateTime in ANSI ST), even when the design proposed by the standard is ugly. As long you develop in a closed group is easy: just modify St as you want... but what happens when you want to share it with a community? Porting and testing in each platform (or merging changes in the same platform)... may be is not difficult, but it could take a lot of time. So I see a problem here. > (...) > But why do you need to port "libraries"? Anyway, if that's your problem, > I understand it, but if you want a broad support for different > platforms, just choose VisualWorks that works in almost all platforms... > (Squeak also ;-) ) Yes but VW is very expensive for commercial projects, and Squeak currently lacks of tools and frameworks for doing a "commercial" software project... someone can say "but you can make a nice UI using Morphic or Tweak", but in the current state of Squeak this requires a lot of work compared with other tools (Seaside and web apps is another history). The lack of commercial oriented tools, is ok in Squeak because, Squeak was conceived as a learning tool. We have to take this in account when comparing Squeak with other languages like Java.... maybe it would be good to have a "commercial" oriented distribution of Squeak. That's why I think that Spoon is wonderful, with a correct testing and modularization it will a allow different distributions of Squeak without forking the code base... and we can have an equivalent to Ruby on Rails for commercial purposes :) Regards, Diego.- |
In reply to this post by Hans-Martin Mosner
Hi,
Hans-Martin Mosner schrieb: > The problem with this comparison is that it is treating Smalltalk as a > programming language. > It's much easier if you treat it like an operating system or a SQL > database - it's a platform. In previous posts, Smalltalk was compared against Ruby, Python, etc. and why it doesn't, as the more mature language, get the same attention. Ruby, Python, Java, .Net are all a language + VM or interpreter/compiler (for more then one OS) + a basic set of libraries. Smalltalk is only the language. The language comes in a bundle with VM + libraries + IDE. So, actually you can't compare Smalltalk with any other bundle (Ruby, Python, ...). Instead you have to compare, for example Squeak, with the others. And that is point, that confuses people and makes the entry to Smalltalk difficult. > In theory, your C program should just run on HP-UX, Linux, AIX, > Windows, MacOSX, RiscOS, AmigaOS, ... > Why did all those operating system vendors invent incompatible system > calls, libraries, file system conventions? The languages we compare Smalltalk to, do this abstraction by providing a VM. > Or why can't you just take your SQL application from ORACLE to MySQL > or Sybase? > After all, SQL is a standard! Right, all databases have SQL 95 as least common denominator. You can work with the SQL standard. I was trying to say, that the least common denominator, ANSI Smalltalk, is to small to base actual work on it. No networking, threading, file system (only file stream), ...., database, ... > > I don't know enough about SQL, but at least in the operating system > world you can achieve a lot of portability by sticking to POSIX which > is supported on most platforms. > Similarly, you get pretty good portability in Smalltalk by sticking to > the ANSI Smalltalk subset. > Of course, GUI widgets etc. are not included in that standard and so > are non-portable. > But does POSIX include standard GUI widgets? Can you write a GUI > application in C and port it from Linux to Windows without a lot of work? achieve. And most of the time this standards come out as a least common denominator, which is better than nothing, but not a lot more. Every language hyped or mainstream right now, got exactly one interested group. Creating standards is easy for them. On the other side, Smalltalk has a lot of interested groups (dialects). Creating a standard is quite difficult. But without (at least) a standard library, you won't be able to compare Smalltalk to the other languages. Then you are right, you will have to compare it with operating systems. As a side note: At least one language from above, is successful, because it promised to overcome the operating system barriers. > I agree with you that it would be great to have easier portability > between the different Smalltalk systems, so you could switch platforms > when needed without too much work. > But in reality, switching between platforms has never been easy. > Actually, the closest thing to effortless platform migration was/is > *Smalltalk* with its image file which can be run unchanged on a large > number of platforms! I've done it with VisualWorks, Squeak and > VisualAge. The two Smalltalk-80 descendants provide much easier > migration (just snapshot your image and start up on another machine) > but VisualAge is pretty doable as well as long as you're willing to > work around the quirks of the different native widgets under OS/2, > Windows and Unix/X. barriers. It was the foundation for Java Swing and SWT. It is a: all been there, all done that. And I don't understand, why the Smalltalk community can't come up with a common library layer. Don't aim for GUI, but start with something like a common file system library. > > Cheers, > Hans-Martin Greetings Waldemar Dick |
In reply to this post by Andreas.Raab
Thankyou Andreas for the explanation and code.
I asked for a non-assembly option to compile for PocketPC without learning assembly (to rewrite 20lines of code :-) thanks again! Ale. ----- Original Message ----- From: "Andreas Raab" <[hidden email]> To: "The general-purpose Squeak developers list" <[hidden email]> Sent: Friday, May 12, 2006 7:31 PM Subject: FFI usage > Alejandro F. Reimondo wrote: > > Where can we read details on FFI? > > Below ;-) > > > I am interested becasue I feel that the FFI implementation > > requires Assembly code to be compiled. > > Is it true? > > That depends on whether you mean it literally or figuratively. For > running the FFI there is a bit of per-platform support code needed, some > of which (the actual call-out) is typically implemented directly in > machine code and written using assembler. > > > Is there any "slow" code in slang for platforms that do not have > > easy assemblers? > > The FFI is (like many other parts of Squeak) "incomplete" in such that > it requires a bit of extra support code to implement the actual ABI > (e.g., setting up the call stack, calling the function, popping args > from the stack etc). This is handled in the platform specific files (see > sqWin32FFI.c for an example) and requires some 20 functions or so to > work (most of those are trivial but provided just in case some platform > has odd behavior wrt. to some data type). > > It is certainly possible to implement much of it without the use of > assembler. For example, if a platform basically passes everything as > words (32bit ints) you could do something like here: > > int args[MAX_ARGS]; > int argCount; > > /* take an int as next argument */ > int ffiPushSignedInt(int value) { > args[argCount++] = value; > return 1; > } > > /* tons of other int types eliminated for brevity here */ > > int ffiPushSingleFloat(double value) { > /* this will push the 32bit equiv. of the float value */ > float single = (float) value; > ffiPushSignedInt(*(int*)(&single)); > return 1; > } > > /* ... double works just the same way; 2x32bit entity ...* > /* ... structures ditto ...*/ > > /* finally, do the actual callout */ > int ffiCallAddress(int fn) { > switch(argCount) { > case 1: return ((int(*)(int))fn)(args[0]); > case 2: return ((int(*)(int, int))fn)(args[0], args[1]); > case 3: return ((int(*)(int, int))fn)(args[0], args[1], args[2]); > /* ... etc ... */ > } > > This will work just fine and requires no assembler but so far I haven't > found any platform where things would be as simple as that (both Intel > as well as PPC have more complex rules than can be reasonably modeled by > this technique). But if you happen to have a platform where things are > that simple (or if it's okay to restrict yourself to a subset that can > be modeled as simply) that's certainly an option. > > Cheers, > - Andreas > |
In reply to this post by Göran Krampe
Hmm, so many different people to reply to. I'll pick this one.
First off. Okay, I think my comments about "if it doesn't look exactly the same" are wrong. Yes, innovation is great, and there is plenty to improve upon in UIs. Some of the morphic GUI elements are pretty nifty, it's just that they are in some "weird" flat color and they appear within their own desktop on my OS desktop. So, I would refine what I said to be that "if your UI looks weird, it will be severely disadvantaged". Like other people have said, if the app does something incredibly great than people will be so impressed that they won't care if the UI is "weird". What is weird is subjective. So, if Microsoft makes it, or Apple (or KDE or Gnome), then it automatically becomes less weird than something someone else makes. It there is an unusual UI that has a great feel to it, that can win out over the fact that it's unusual. Developing new UI ideas is good. Unfortunately, at this point, I don't think the new UI ideas in Squeak overcome the weirdness factor for normal desktop application users. WxSqueak, if it could be launched without squeak's desktop appearing too, could probably make squeak more worth people's time to develop desktop applications with. A great GUI would be different than the current GUIs and not be an emulation. [hidden email] wrote: > Hi! > > I am not really arguing here - just mentioning some pointers about these > bullets that might be interesting to hear about: > > Kendall Shaw <[hidden email]> wrote: >> If your program doesn't look exactly like every other program and use >> exactly the same procedure they've had to use for every program, then >> game over, you might as well not have even bothered to write the program. >> >> In squeak, the controls don't look or behave like the other controls a >> user will use on their computer, so game over, you might as well not >> have even bothered to write the program. > > http://www.wxsqueak.org > > ...or just use Dolphin for win32 apps - it is really nice for that. > Or turn the app into a localhost webapp, like we are currently doing > with the issue tracker we are writing. My complaint about the GUI, doesn't have to do with Smalltalk, just Squeak. >> It doesn't matter what I think about it. It's what the user is likely to >> think about it. >> >> Most importantly though, I can't open emacs on squeak's desktop. > > wxSqueak doesn't "force" a deskop. Try the demo. And even so - why not > run Emacs on the side? :) Or inside Squeak: > http://map.squeak.org/packagebyname/svi The point is that there is a barrier between the smalltalk in squeak and the files on my OS file system. Having a more functional editor inside Squeak, doesn't get rid of the barrier. > And then we have Areithfa Ffenestri or what the heck it is called. ;) > (the code for supporting multiple windows from within Squeak - but > wxSqueak already gives you that actually) Hmm. I'll have to look at Areithfa Ffenstri. >> Also, I can't easily check a squeak application into a version control >> system, separate from other squeak applications, but together with other >> source files in other languages, and other files. > > Mmmmm, "easily"... well. There have been numerous approaches of > mirroring Smalltalk code into files for that like MonticelloCVS or > CVSTProj. I even hacked up a almost fully functional cvs pserver > protocol implementation. ;) But these days Monticello is so convenient > to use and just needs a file dir or an ftp server for team work - there > is no real incentive to bother. Especially not now that MC2 is seeing > the light. The point again is about the Barrier between stuff that's in squeak, and what's on the file system. Even if there is some great squeak version control system, that means I'm locked into that system. I can't freely choose to switch over to Subversion or something else. > And if the idea is to just "bundle" a snapshot with other snapshots of > software - then just dump the .mcz into your choice of repo, no big > deal. > >> I can't run find on a combination of squeak classes and other files. > > You shouldn't. ;) But apart from that aspect - adding a mirroring > mechanism of source into files that is "live" shouldn't be that hard if > someone really wanted to do it. So, changing or extending squeak could make it different. I agree. If there were a live file system mirror that didn't depend on the individual instance of squeak that one person has on their desktop, that could eliminate the problem that I'm describing. >> I can't easily include it in a test procedure involving multiple languages. > > Hmmm, why not? I mean - what makes Squeak harder to use in a test > procedure than *any other* mixing of languages? The barrier between stuff that's in squeak and what's on the file system. >> I don't think you could easily distribute it as an rpm or a debian >> package etc. and deal with dependencies between squeak applications. > > You can very easily deploy a Squeak app as an rpm or deb. The simplest > way is to just bundle the VM with the image. No external deps at all. > And I can't see why Squeak would add any further obstacle than any other > language in that respect. Again there is the problem with squeak being monolithic. How would you handle dependencies between multiple squeak applications written by different people and dependencies on external software, from the external packaging system of your choosing, and not be locked into one particular packaging system? >> I can't use installshield to integrate it into someone's squeak applications. > > Not sure what you mean. Making an "installshield" installer for a Squeak > app is trivial. Just test: > http://swiki.krampe.se/gohu/23 > > That is old though, Cees has improved it a bit and I am using it right > now for our issue tracker. That's an installer for Squeak right? Not a mixture of possibly interdependent software, some written in squeak and some not. |
In reply to this post by Michael Latta
On that note, I think it would be cool to have a linux distro that used squeak as THE desktop. The downside is that there are a lot of holes in the toolset (like web browser) that are difficult to recreate. The upside is that this would force the holes to be filled in.
On Friday, May 12, 2006, at 02:07PM, Michael Latta <[hidden email]> wrote: >Smalltalk is much more like an OS than just a language. |
In reply to this post by Alejandro F. Reimondo
Alejandro F. Reimondo wrote:
> Thankyou Andreas for the explanation and code. > I asked for a non-assembly option to compile for PocketPC > without learning assembly (to rewrite 20lines of code :-) You still need to understand the ABI and personally, I typically find this harder than learning the basics of the assembler language involved. For an unknown ABI I'd actually recommend learning the assembler language as a starter, to understand the processor architecture. It explains a lot when you read through the ABI and try to understand some oddball reference to a register you've never heard about and what its purpose might be. Cheers, - Andreas > thanks again! > Ale. > > > ----- Original Message ----- > From: "Andreas Raab" <[hidden email]> > To: "The general-purpose Squeak developers list" > <[hidden email]> > Sent: Friday, May 12, 2006 7:31 PM > Subject: FFI usage > > >> Alejandro F. Reimondo wrote: >>> Where can we read details on FFI? >> Below ;-) >> >>> I am interested becasue I feel that the FFI implementation >>> requires Assembly code to be compiled. >>> Is it true? >> That depends on whether you mean it literally or figuratively. For >> running the FFI there is a bit of per-platform support code needed, some >> of which (the actual call-out) is typically implemented directly in >> machine code and written using assembler. >> >>> Is there any "slow" code in slang for platforms that do not have >>> easy assemblers? >> The FFI is (like many other parts of Squeak) "incomplete" in such that >> it requires a bit of extra support code to implement the actual ABI >> (e.g., setting up the call stack, calling the function, popping args >> from the stack etc). This is handled in the platform specific files (see >> sqWin32FFI.c for an example) and requires some 20 functions or so to >> work (most of those are trivial but provided just in case some platform >> has odd behavior wrt. to some data type). >> >> It is certainly possible to implement much of it without the use of >> assembler. For example, if a platform basically passes everything as >> words (32bit ints) you could do something like here: >> >> int args[MAX_ARGS]; >> int argCount; >> >> /* take an int as next argument */ >> int ffiPushSignedInt(int value) { >> args[argCount++] = value; >> return 1; >> } >> >> /* tons of other int types eliminated for brevity here */ >> >> int ffiPushSingleFloat(double value) { >> /* this will push the 32bit equiv. of the float value */ >> float single = (float) value; >> ffiPushSignedInt(*(int*)(&single)); >> return 1; >> } >> >> /* ... double works just the same way; 2x32bit entity ...* >> /* ... structures ditto ...*/ >> >> /* finally, do the actual callout */ >> int ffiCallAddress(int fn) { >> switch(argCount) { >> case 1: return ((int(*)(int))fn)(args[0]); >> case 2: return ((int(*)(int, int))fn)(args[0], args[1]); >> case 3: return ((int(*)(int, int))fn)(args[0], args[1], args[2]); >> /* ... etc ... */ >> } >> >> This will work just fine and requires no assembler but so far I haven't >> found any platform where things would be as simple as that (both Intel >> as well as PPC have more complex rules than can be reasonably modeled by >> this technique). But if you happen to have a platform where things are >> that simple (or if it's okay to restrict yourself to a subset that can >> be modeled as simply) that's certainly an option. >> >> Cheers, >> - Andreas >> > > > |
On 12-May-06, at 6:51 PM, Andreas Raab wrote: > Alejandro F. Reimondo wrote: >> Thankyou Andreas for the explanation and code. >> I asked for a non-assembly option to compile for PocketPC >> without learning assembly (to rewrite 20lines of code :-) > > You still need to understand the ABI and personally, I typically > find this harder than learning the basics of the assembler language > involved. For an unknown ABI I'd actually recommend learning the > assembler language as a starter, to understand the processor > architecture. It explains a lot when you read through the ABI and > try to understand some oddball reference to a register you've never > heard about and what its purpose might be. > > Cheers, > - Andreas Yes, and when reading the ABI ensure you follow *all* the clues, casual mention of "quad word alignment" lurking casually somewhere really does mean that, perhaps the code *will* appear to run, right to the point you make the first OpenGL call... Oh, and careful about assuming you have a correct ABI, look for the revised edition (if any). -- ======================================================================== === John M. McIntosh <[hidden email]> 1-800-477-2659 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ======================================================================== === |
In reply to this post by timrowledge
tim Rowledge wrote:
> > On 12-May-06, at 9:15 AM, Charles D Hixson wrote: > >> (Well, >> compilation to C would be better, but I'm presuming that this is >> impossible.) > > Why would compilation to C be better? You wouldn't gain any > performance in any serious application. Consider a moment; to send > messages you have to do certain work. If you compiled > ... > tim > -- > tim Rowledge; [hidden email]; http://www.rowledge.org/tim > Oxymorons: Soft rock Compilation of Squeak to C would be better because there are well know ways to distribute programs written in C to various different platforms. I understand that this probably wouldn't yield any performance gain, that would require designing the program in the language of implementation, and for that purpose I'd rather choose something other than C. D, perhaps, or even Eiffel. The problem with those is no graphic interface. Ada is a possibility, and has a decent connection to Gtk. But Ada code is HUGE. However, it has been said that my first qualm, that there isn't an easy way to distribute a program after it's been written to a machine that doesn't already have Squeak installed is false...in which case none of these arguments apply. (OTOH, I don't currently know them, so I have no idea what the limitations of these methods are. Presumably I'll run across them before I need them.) |
In reply to this post by Waldemar Dick
> Creating standards is easy for them. > On the other side, Smalltalk has a lot of interested > groups (dialects). Creating a > standard is quite difficult. It is called "diversity", and is an emergent observable with evolution. In languages defined as one-for-all (now called "standard") diversity is not observed because they are products of formal design (and not of normal evolution). For formal definitions, any difference represent a problem. For non-formal activities a divergence is a natural path to be taken by a newcommer. This differences make diferences in the propagation process of products of formal&non-formal activities. cheers, Ale. ----- Original Message ----- From: "Waldemar Dick" <[hidden email]> To: "The general-purpose Squeak developers list" <[hidden email]> Sent: Friday, May 12, 2006 7:37 PM Subject: Re: Smalltalk: Requiem or Resurgence? {Dr. Dobb's Journal (05/06/06) Chan, Jeremy} > Hi, > > Hans-Martin Mosner schrieb: > > The problem with this comparison is that it is treating Smalltalk as a > > programming language. > > It's much easier if you treat it like an operating system or a SQL > > database - it's a platform. > In previous posts, Smalltalk was compared against Ruby, Python, etc. and > why it doesn't, > as the more mature language, get the same attention. > Ruby, Python, Java, .Net are all a language + VM or interpreter/compiler > (for more then one OS) > + a basic set of libraries. > > Smalltalk is only the language. The language comes in a bundle with VM + > libraries + IDE. > So, actually you can't compare Smalltalk with any other bundle (Ruby, > Python, ...). > Instead you have to compare, for example Squeak, with the others. > And that is point, that confuses people and makes the entry to Smalltalk > difficult. > > > In theory, your C program should just run on HP-UX, Linux, AIX, > > Windows, MacOSX, RiscOS, AmigaOS, ... > > Why did all those operating system vendors invent incompatible system > > calls, libraries, file system conventions? > The languages we compare Smalltalk to, do this abstraction by providing > a VM. > > Or why can't you just take your SQL application from ORACLE to MySQL > > or Sybase? > > After all, SQL is a standard! > Right, all databases have SQL 95 as least common denominator. You can > work with > the SQL standard. > I was trying to say, that the least common denominator, ANSI Smalltalk, > is to small to > base actual work on it. No networking, threading, file system (only file > stream), ...., database, ... > > > > I don't know enough about SQL, but at least in the operating system > > world you can achieve a lot of portability by sticking to POSIX which > > is supported on most platforms. > > Similarly, you get pretty good portability in Smalltalk by sticking to > > the ANSI Smalltalk subset. > > Of course, GUI widgets etc. are not included in that standard and so > > are non-portable. > > But does POSIX include standard GUI widgets? Can you write a GUI > > application in C and port it from Linux to Windows without a lot of > Standards across more than one interested party are difficult to > achieve. And most > of the time this standards come out as a least common denominator, which is > better than nothing, but not a lot more. > Every language hyped or mainstream right now, got exactly one interested > group. > Creating standards is easy for them. > On the other side, Smalltalk has a lot of interested groups (dialects). > Creating a > standard is quite difficult. > But without (at least) a standard library, you won't be able to compare > Smalltalk > to the other languages. Then you are right, you will have to compare it > with operating > systems. > As a side note: At least one language from above, is successful, because > it promised > to overcome the operating system barriers. > > I agree with you that it would be great to have easier portability > > between the different Smalltalk systems, so you could switch platforms > > when needed without too much work. > > But in reality, switching between platforms has never been easy. > > Actually, the closest thing to effortless platform migration was/is > > *Smalltalk* with its image file which can be run unchanged on a large > > number of platforms! I've done it with VisualWorks, Squeak and > > VisualAge. The two Smalltalk-80 descendants provide much easier > > migration (just snapshot your image and start up on another machine) > > but VisualAge is pretty doable as well as long as you're willing to > > work around the quirks of the different native widgets under OS/2, > > Windows and Unix/X. > Smalltalk showed that it is possible to overcome operating system > barriers. It was the foundation for Java Swing and SWT. It is a: all > been there, > all done that. And I don't understand, why the Smalltalk community can't > come up with a common library layer. > Don't aim for GUI, but start with something like a common file system > library. > > > > Cheers, > > Hans-Martin > Greetings > Waldemar Dick > > |
Le Samedi 13 Mai 2006 15:10, Alejandro F. Reimondo a écrit :
> > Creating standards is easy for them. > > On the other side, Smalltalk has a lot of interested > > groups (dialects). Creating a > > standard is quite difficult. > > It is called "diversity", and is an emergent observable > with evolution. > > In languages defined as one-for-all (now called "standard") > diversity is not observed because they are products > of formal design (and not of normal evolution). > > For formal definitions, any difference represent a problem. > For non-formal activities a divergence is a natural path > to be taken by a newcommer. > This differences make diferences in the propagation > process of products of formal&non-formal activities. > > cheers, > Ale. Ale, very good theory, There are also 2 main modes of reproduction: sexual or not (simple division). Sexual is somehow superior, because it allows mixing advantages of two individuals. Diversity is good since the chances of survival are increased. But above a certain degree of difference, sexual reproduction is not possible anymore. I'd like Smalltalk dialects to have more sexual relations, and allow natural mixing of some VW genes with some Squeak ones for example. By now, i must rely on some genius of genetics to do the transplatation in laboratory, something very expensive! Nicolas |
One issue I continue to face in trying to get Squeak to be a viable
solution at my workplace is that Squeak does not integrate with the common idioms of the day very well. For instance, Squeak doesn't support SSL and HTTPS. These are very common protocols that just about every other major language supports. I don't know enough about these technologies to be able to code it myself, but surely there are people in the community who can. My biggest project at work is an integration with Salesforce.com via SOAP which is currently impossible in Squeak because of the lack of HTTPS connections. I tried doing it in VW 7.3, but I could never get the SOAP support worked out properly. So, in my opinion, if we would like Smalltalk in general (and Squeak in particular) to be easily accessible to a larger group of developers, or even if we want it to be MORE easily accessible to its current group of developers, these issues of "playing well in the sandbox with other children" need to be worked out. -- Jason Rogers "Where there is no vision, the people perish..." Proverbs 29:18 |
Hi Jason,
on Sun, 14 May 2006 02:33:45 +0200, you <[hidden email]> wrote: > One issue I continue to face in trying to get Squeak to be a viable > solution at my workplace is that Squeak does not integrate with the > common idioms of the day very well. > > For instance, Squeak doesn't support SSL and HTTPS. These are very > common protocols that just about every other major language supports. > I don't know enough about these technologies to be able to code it > myself, but surely there are people in the community who can. Here's how others have done it without additional coding - http://www.google.com/search?q=squeak+apache+https I think that most sites are running their Squeak headless Web apps on the back-end of a front-end http server. > My > biggest project at work is an integration with Salesforce.com via SOAP > which is currently impossible in Squeak because of the lack of HTTPS > connections. Happy squeaking ;-) and let us know how it worked. /Klaus |
> Here's how others have done it without additional coding
> > - http://www.google.com/search?q=squeak+apache+https > > I think that most sites are running their Squeak headless Web apps on the > back-end of a front-end http server. I think Jason wants to talk to a server via https/ssl from squeak, not the other way around. Maybe this helps: http://www.stunnel.org/examples/https_client.html Cheers Philippe |
That doesn't quite do it either unless you always want to talk to the
same server. OSProcess with curl is good, or someone could write a plugin for libcurl. I need this as well but haven't had time to do it. On May 14, 2006, at 2:19 AM, Philippe Marschall wrote: > > I think Jason wants to talk to a server via https/ssl from squeak, not > the other way around. > > Maybe this helps: > http://www.stunnel.org/examples/https_client.html > > Cheers > Philippe > |
In reply to this post by Nicolas Cellier-3
Nicolas wrote:
> If you try to mimic the OS native interface, it's only a defensive strategy, > by construction something imperfect and always one version late... > You're wasting development forces to follow the leaders, and don't invent > anymore in this domain... +1 thank you Nicolas for nailing my sentiments about native widget emulation. The goal should be good looking, easy-to-use interfaces. Innovate, don't emulate. I must admit, I've never understood why some are so concerned with native look and feel anyway. Why is it such a big deal if the drop-shadow on my buttons appears lower-left instead of lower-right (this is a made up example, is there a better one)? If Microsoft does it in their new version of Windows, THEN its ok. It suddenly becomes (gong please) "the new standard" that we all must "conform" to. Please.. The only way to break this cycle of following is to break it. Frankly, I also wonder about those who feel "blocked" by Squeaks "weird" look and feel. It's basically the same as anything else as far as I can tell. You have lists, buttons, scroll-bars, text editors, etc. They're styled a bit differently than native windows but operate pretty much the same. These widget differences are like the differences between driving a Ford vs a Chevy, not much, and most anyone is able to figure it out. The fact is, going forward, new-and-refined UI's *will* be designed, both in and out of Squeak. The only thing any user can do is adjust, get used to it, and develop an exploratory nature when working with computers. Either that or stay with MS Word and MS Excel forever.. :) - Chris |
Free forum by Nabble | Edit this page |