Linux 'Weblications' with SashXB
Ches2000Pro writes "Via Wired News, IBM has announced a new Linux scripting environment called SashXB. From their description: SashXB is an open source application environment that exposes native functionality to JavaScript. It's ideal for web developers with HTML and JS skills who want to write full-featured native applications, as well as experienced programmers who'd appreciate the convenience of rapid application development. SashXB is being released under the LGPL license." It's not exactly new, but seems to be quite usable now. Has anyone used this?
For instance, SashXB weblications can currently run in a simple window, in a Glade-designed UI, in a GNOME panel, or even in a console-based scripting environment. Future locations might include ScreenSaver, Nautilus, and an embeddable Bonobo component. We have also written extensions to access the native filesystem, play Vorbis files, parse and construct XML documents, communicate with other machines using the Jabber protocol, use FTP, and interact with the UI using GTK and Glade, among other things.
Dang. Makes me wonder why we even need operating systems anymore.
-- Knowing too much can get you killed, but knowing who knows too much can make you rich.
Many, many, moons ago when NS first released the Mozilla code (and the source for the JS API) for a research project I added a bunch of low-level classes to JS in order to allow it to be used for more advanced applications (independent of a browser).
This was long before MSJScript, but anyway, while it worked out pretty cool for the most part, it was horribly painful to add classes and especially painful to map APIs (I was using Win32 at the time) to JS objects.
My second problem was that as a language, JS is just to forgiving. Optional use of semi colons and other things such as that make it a little confusing to distribute and debug.
I always have liked JS though and I'm glad someone wrote a good backend to it. I'll have to check it out...
int func(int a);
func((b += 3, b));
exposes native functionality to JavaScript
/*`
You mean things like `rm -rf
YOU SEE, YOU SEE! LINUX *IS* BECOMING MORE LIKE WINDOWS!!!!!!
"Lawyers are for sucks."
- Doug McKenzie
I figure we're all going to be asking what this is about...
;).
This is a reprint of text from MartinG from the old thread:
> Can anyone point to a coherent explaination of what
> Sash can offer on Linux, and what it's parts are?
>
This question is probably going to be asked a lot, so I guess we should
start creating a FAQ somewhere.
Anyway. This is of course by no means an official position on anything;
these are just my thoughts.
The Sash end-user gets:
* Painless installation (no command line necessary -- straight from the
browser to the [graphical] installer).
* One-click uninstallation, with recursive dependency checking to prevent
the removal of vital components.
* A point and click interface for the execution and management of all of
his weblications
* Automatic updating of programs/extensions (this is in the works)
* Tiny download sizes for native, fully functional weblications
* Highly componentized infrastructure avoids bloatware -- a program only
fetches and loads exactly what it needs to run.
* Tight security controls every single thing a weblication tries to do
The Sash developer gets:
[from a structural point of view]
* Rapid deployment and easy management of programs
* Powerful native functionality without having to learn a new skill set
(provided that he already knows JavaScript and HTML)
[from a design point of view]
* Ridiculously easy drag-and-drop design for his weblication's UI
* Painless integration of UI with SashScript
* A full-featured IDE which takes him from start to finish in creating a
weblication, including:
- syntax highlighting
- syntax assistance (a la Microsoft's Intellisense)
- multiple document/multiple window interface
- Druids (wizards) which aid in the creation of any given action,
or in the creation of the weblication as a whole
I'm sure there are more features which I am missing right now.
Yeah, this sounds terribly hokey, but it's actually true. We've created a
sample text editor, a web browser, even a simple Lotus Notes mail client
(as demos), each in about an hour, start-to-finish.
Man, I really do sound like a salesman
As for parts, perhaps that's for another email. There are two main parts:
the runtime, which runs the weblications, and the WDE (development
environment) which aids developers in writing weblications. For more info,
check out the README.* files in the source tree...
AJ
Keep in mind that SashXB uses JavaScript as an *application* development language, not as a webpage scripting tool. Sash weblications are run just like traditional applications -- not by just browsing to a page in Mozilla. The native functionality added to JavaScript is limited by the Sash security manager, which allows granular control over access to system resources on a per-application basis. For example, if a weblication needs access to the filesystem, the user will be notified prior to installation and be given full details of the weblication's requested security permissions. Sash was designed with security in mind, and is in fact more secure than a typical native application written in C/C++/Perl. Because the JavaScript code is interpreted, the SashXB runtime can actually check each JavaScript call.
Also, the upcoming JScript.NET will have similar functionality, but will be cross-platform.
...ok...
JavaScript is just a language, just as Python, Perl are languages.
JavaScript can be hosted by browsers, shells, custom applications, etc...
It can only access the OM's supplied to it... For instance, the most (in)famous is the DOM... remember, Document Object Model...
So, if someone wants to write a shell host, expose shell functionality as a SOM (Shell Object Model), it's entirely up to them, but DOES NOT COMPROMISE BROWSER SECURITY....
I'm begining to think "News for Nerds" means techno-weenies, who have no technology/development/systems background whatsover, duuuuuuuude, lets qo to a 2600 meeting and talk about all the coooooool hacker movies we watch.....
That's irrelevant to SashXB, though. SashXB uses standard JavaScript and HTML (which is supported brilliantly in Mozilla) and does not even require network access to run the weblications. A weblication runs inside of a container called a Location, which uses a JavaScript interpreter to handle calls from a HTML DOM or a glade layout. So, although the entire application may be written in JavaScript, it is far from a traditional web application.
I would suggest that everyone try out SashXB before they make a judgement. Try the FTP client, it rocks.
This is quite similar to XWT. XWT is often described as "A 'lite' version of Mozilla's XUL, packaged as an ActiveX/JavaApplet, using XML-RPC instead of XPCOM.
From the xwt.org front page:
XWT is the XML Windowing Toolkit. It lets you write remote applications -- applications that run on a server, yet can "project" their user interface onto any computer, anywhere on the Internet....
Unlike all other remote-display technologies, XWT applications are usable and responsive regardless of network congestion, delays, and even complete network failures.
The XWT Engine is packaged as both an ActiveX control and a Java applet, so you can access XWT applications from all major platforms (Win95/98/ME/NT/2k/XP, Linux, Solaris, MacOS X) without installing any additional software. It is distributed under an open source license (LGPL and GPL), so it can easily be ported to new platforms.
There's a tutorial to walk you through creating a tic-tac-toe application and a comprehensive reference spelling out all the nitty gritty details about how the engine works.
So does that make web-applications bad? No. It sounds project which should never have been accepted with those requirements. And with 1000+ lines of JS per page, I hope there's only 1 or 2 pages? If not: how many code did you duplicate? Quite a lot I believe. As a company developing web-applications, you should know that it is almost impossible to deliver an application with a lot of JavaScript for all platforms. If the client still wants it, don't accept the project or you'll be screwed.
0x or or snor perron?!
It's all these great new terms like "weblications" that make this world of new technology (or worlnewology!) a better, happier place.
"I am a cipher, a cipher, wrapped in an enigma, smothered in secret sauce" -Jimmy James
This actually fits in quite nicely something I've been thinking about.
One of the nice things about web pages is that you can just look at the source. Wouldn't it be great if you could look at the source for any widget in an application in the same way? Even make changes just by editing the source directly, if you wanted to. So, for instance, if I'm using a Word processor and there's a function I never use I can just delete it from the source script.
Sash is pretty old news... Saw it either here or on fm.net a year ago. However, a similar technology, XWT was released more recently, and may appeal to a similar crowd.
Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
For those of you interested, there's a book recently published by IBM about the Windows version of Sash. You can buy it online or download the entire thing from here.
Reading the posts thus far, has no one actually used this?
there is a Windows version, Sash has been available for two years. Not many people use it.
What scripting languages do we have now? SH, Perl, Python, Ruby, Javascript, etc. There's plenty of them. Why can't we just stick with one (i.e. Perl) and end the needless complexity.
Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
Looked through all of the documentation for this and could not find anywhere that stated weather sash (windows or linux version) had the ability to work with ODBC or any other API's (OCI for oracle, or the MySQL API, etc) If not then this would be of little use for anything above and beyond your typical "Hello World", or "Ticker App" (reading from a flat file of course
To see what it does however here is a link of a one page example that explains it better than reading the whole book!
(+1 Funny) only if I laugh out loud.
Even as we speak I am writing an application for a customer. The app is a cross-platform, GUI/Character installer for their application. No existing installers could do what was necessary, so I'm writing a dedicated one from scratch. What to write it in? Perl/TK, was the only realistic choice.
Now lets look at some Perl/Tk code as compared to SashXB (formatted poorly to avoid lameness filter).Now what I'd much rather do is something like this: And have this run from the OS, not in a browser. It looks like Sash will let me do this, and what could be wrong about that?
Since important parts of SashXB (needs a new name) are Gecko, XPCom, and the Mozilla JavaScript interpreter. It seems that rich, complicated UI's are in reach via XUL. I sincerely hope that a richer version of SashXB will soon be mentioned in the same breath as Perl, Python, and Ruby.
The great thing is that virtually every Mac application has hooks for scripting through the standard Apple Events model which is automagically available to all other OSA languages.
I don't read ACs: If a post isn't worth so much as a nom de plume to its author then I wont bother either.
No, javascript is a programming language. It isn't designed to do anything other then let you program. It's actualy pretty good. You're talking about the DOM api that comes with web browsers.
Also, Javascript has nothing to do with Java at all. It was origionaly called LiveScript before sun's Java came out and Netscape decided to confuse the fuck out of everyone.
autopr0n is like, down and stuff.