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?
Am I the only one who gets hives thinking of the security implications of that?
Best Slashdot Co
great, now native apps will be opening popups!
another reason billg can claim that a web browser is an integral part of the OS.
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
I finished doing a web-based application for a client about 4 months ago. That was a complete nightmare. They wanted native gui functionality, yet cross-platform, and it had to work on netscape (all vers) and IE (all vers). Oh, did I mention that we couldn't expect the users to download anything additional, EVER? So that ruled out java applets (since xp doesn't have a jvm by default). The whole thing was done with ASP, Javascript, and plain html forms.
Making a long story short, the Netscape 4.x functionality ended up being severely lacking (since 4.x JS engine wasn't capable of performing most of the functionality they wanted). Oh, we weren't allowed to refresh the pages very often, so almost everything had to be done with JS actively manipulating the current document. To make matters worse, my spineless boss allowed them to change the spec several times throughout the project. When you have 1000+ lines of JS per page, any little change is a pain in the ass.
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.
Oh, I thought it said SlashXB. Nevermind.
room101 -- how much can you stand before they break you?
(they always break you eventually)
...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.....
"Linux 'Weblications' with SlashXP"
:P
I had a hard time picturing CmdrTaco et al. Embracing porting slashcode to XP.
"Draco dormiens nunquam titillandus."
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.
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
Just asking.
sulli
RTFJ.
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.
ASP,JSP,ChiliASP,ColdFusion... Anyone with experience in writing script based web applications knows that it is a nightmare. You end up with thousands of lines of untyped script code that you have to maintain w/o a decent debugger or development envirornment. Hence the introduction of richer web development envirornments like java servlets and asp.net. This seems like a throwback to me.
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.
Huh? So what would you call Macromedia's flash player for Linux?
--- Biffster.org
"Bite my shiny metal ass."
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.
Then what would you suggest, given that there is a limited marketing budget?
Paying programmers to write quality applications?
The everyone-contributes model only goes so far in application development and doesn't cover all the grunge-work that programmers won't do (user documentation; help files; clean, friendly examples).
To celebrate the occasion of my 1000th post, I will post no more forever on Slashdot. Goodbye.
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.
Doesn't this break platform independence? Wouldn't you be better off using JNI?
The biggest trick the devil pulled was letting lawyers become politicians so they can write the laws.
How is this any diffrent then any other programming language?
autopr0n is like, down and stuff.
Then your client is a moron... That dosn't mean that IE/Moz wouldn't provide a stable platfrom... and did you think of using Flash (I don't know if it would have provided everything you wanted, personaly I hate flash :P).
autopr0n is like, down and stuff.
Well, you can get flash for linux, but Most windows/mac users woudln't need to download anything, and while probably less powerfull then JS/DOM it would provide a *stable* development platform for the guy to work with. crossplatform DHTML can really suck, I should know, I'm happy Autopr0n just shows up in netscape4x (they get fed a blank stylesheet, actualy)
autopr0n is like, down and stuff.
I once saw a online chat application who's client side was an *animated gif* in an image map. yeh, really. It was insaine. And it actualy worked!. and worked well. It was pretty impressive. Of course, I have ethernet access to the 'net
autopr0n is like, down and stuff.
Isn't it obvious. Many people lack the ablity to think. it's a sad thing :(
autopr0n is like, down and stuff.
JavaScript OSA is a port of the Mozilla JavaScript 1.5 scripting system to the Macintosh in the form of a OSA (Open Scripting Architecture) component. You can use JavaScript OSA as a scripting language in any Macintosh application supporting OSA languages, such as the Script Editor included with the MacOS or our own Script Debugger product.
Though not necessarily made with "weblications" in mind, you could probably produce a full featured application using this AppleScript component (such as by making calls to a Unix shell or via XML-RPC and SOAP calls implemented in OSX 10.1). My question is, would a Darwin/OSX port of SashXB be more or less useful than just using JavaScript OSA for a system-level JavaScript API?
There is no gravity...the earth just sucks.
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.
... A web-based virus toolkit! Ingenious!
Anybody remember VB-Script? Oh wait, it's not MS, so new features are a good thing.
"Derp de derp."
The premise also seems wrong to me. People who are so inexperienced that they can't figure out a scripting language like Python or Perl probably shouldn't be writing GUI applications in the first place. And Python and Perl both already have excellent GUI toolkits available to them.
SashXB also falls short in the installation area. It depends on half a dozen other packages to be installed on the user's machine. Sorry, but something like this should be a single download for the user, and a single click install.