LiveScript was a very nice, general purpose programming language initially, however it was subsumed into the marketing hype of the day to be renamed and forced fit into a company's web browser product to manage the HTML DOM and we have the often/much maligned result: JavaScript.
I know many web developers, especially in enterprise settings, that barely tolerate JavaScript and others that "hate" it (their words not mine) and others that banned its' use or at least limited its' use for a myriad of reasons, mostly due to security. Web security is very convenient if you want to limit something...even if there is a kernel of truth to it...however that is mostly an implementation issue that should not reflect on the language itself, IMO.
FWIW/IMO, ECMAScript is maturing rather nicely. The JavaScript language has a great set of programming features some of which were created in one of my favorite languages that never-really-was-successful, Self. Dynamic, prototypes, functional, imperative, OO, ... very flexible. For more information on the language itself, I highly recommend Eloquent JavaScript.
V8, Google Chrome's JavaScript engine, has reinvigorated this space, though I'd like to see more interest from Mozilla on Rhino and SpiderMonkey...and see other players enter this space. By far, the most interesting and promising SSJS is provided by node.js. I'd like to hear about other options and/or experiences using node.js or SSJS, please share 'em if you got 'em!
No technology is perfect, and you have to determine which technology is the best fit for purpose for your solution. I have a core set of technologies that I use for what I tend to call "nextweb" or realtime web solutions, and SSJS is a foundational component...and so far node.js is the best option I've found for SSJS.
In the past, JavaScript has been limited by its' implementations and where it has been "forced fit", though the number of client-side JavaScript frameworks and SSJS indicate that these limitations are no longer valid. With a small core set of technologies, most with open source options, and open standards, the nextweb can be utilized today by any organization willing to capitalize on it...if only they can give up some of their reliance on enterprise "bloatware" for their web solutions.
SSJS, just think about it, and maybe, just do it!
05 October 2011
30 September 2011
Wow! What a wild ride the last few years!
Digging into my old web presence I found this blog. I haven't used it since 2008, and I'm surprised to see it is still here. Then, I was involved in Semantic Web solutions; since then, I refocused on realtime web solutions which are also amenable to the Cloud.
The last few years have been a wild ride technology-wise and I have an updated perspective on the web...nothing earth shattering or paradigm shifting if you already know this stuff...here is a high-level summary:
Thanks for reading!
Siorc
The last few years have been a wild ride technology-wise and I have an updated perspective on the web...nothing earth shattering or paradigm shifting if you already know this stuff...here is a high-level summary:
- Microformats are a very good thing; the tactical, practical semantic web (lower case)
- JavaScript is a wonderful programming language, in spite of it being forced into the HTML DOM
- jQuery is an amazing and useful framework.
- REST is all you need for distributed web architectures (sure, there are a few more foundational standards)
- Realtime web is viable, but not well-known in terms of value and technologies to most mid-large size organizations who stick with their big name, high cost technology solution providers and bloatware.
- Realtime web solutoins can be designed to use a small set of common standards and wide range of open source software.
- Enterprise architecture - where's the value realization? For those who have embarked on enterprise architecture initiatives, have large teams of enterprise architects with all the necessary certifications (and/or consultants too) have you seen real ROI? Have you broken even? Are you even tracking this?
- WOA > SOA
- Artificial Intelligence and Knowledge Engineering provide implicit value but don't sell well if stated explicitly and directly. One needs to use more popular buzzwords and euphemisms.
Thanks for reading!
Siorc
Labels:
enterprise architecture,
JavaScript,
jQuery,
real time web,
REST,
WOA
28 July 2008
Semantic Web Open Source Software Hole?
If you have been working or playing with any of the open source software (OSS) efforts that implement the W3C standards, you may have noticed there is a major hole: thread safety and concurrency! Most of the OSS software is very good for learning, experimenting or creating single user solutions, but beyond that, you are out of luck.
That is, if you want to use semantic OSS libraries or code, you have to provide the multi-threading support. Impossible? No, of course not, but to do so, you have to provide a threadsafe / concurrent environment or get the OSS source code and rewrite it. Neither of these options are appealing. This is work, a means to an end, and its extra. If you want to provide an OSS-based semantic solution on a website where there is a possibility of two or more concurrent users ;) you will need to do some work.
Of course, buying a commercial product is an option if you can afford it, and are willing to work at the vendor's release pace and no access to source code, etc., that's fine...but then, you aren't using OSS now either.
If you are going to provide open source software for semantics, or just about anything else, and you want your software to become popular and enjoy widespread use in the "real world" - you need to provide thread safety, concurrency and even consider multi-user environments (e.g., like a web server!). If not, then your OSS will not likely see much use or notice.
I think the main reason for the slow uptake of semantic technology (and some other advanced technologies) on the web is not complexity, standards or usefulness of the concept, but rather the state (or rather the lack of state management / thread safety and concurrency) of Semantic Technology OSS and the cost of commercial semantic technology.
Its time many OSS projects recognize the realities of software for the web: multi-user environment support is a good place to start.
What do you think?
That is, if you want to use semantic OSS libraries or code, you have to provide the multi-threading support. Impossible? No, of course not, but to do so, you have to provide a threadsafe / concurrent environment or get the OSS source code and rewrite it. Neither of these options are appealing. This is work, a means to an end, and its extra. If you want to provide an OSS-based semantic solution on a website where there is a possibility of two or more concurrent users ;) you will need to do some work.
Of course, buying a commercial product is an option if you can afford it, and are willing to work at the vendor's release pace and no access to source code, etc., that's fine...but then, you aren't using OSS now either.
If you are going to provide open source software for semantics, or just about anything else, and you want your software to become popular and enjoy widespread use in the "real world" - you need to provide thread safety, concurrency and even consider multi-user environments (e.g., like a web server!). If not, then your OSS will not likely see much use or notice.
I think the main reason for the slow uptake of semantic technology (and some other advanced technologies) on the web is not complexity, standards or usefulness of the concept, but rather the state (or rather the lack of state management / thread safety and concurrency) of Semantic Technology OSS and the cost of commercial semantic technology.
Its time many OSS projects recognize the realities of software for the web: multi-user environment support is a good place to start.
What do you think?
10 January 2008
REBOL 3, where art thou?
Nearly a year since I blogged about my anticipation of REBOL 3 and its imminent release, and I'm still waiting. Anyone else waiting too? The latest status update was last October. Now the reason things "appear" to be so quiet on REBOL 3 is simple. Since I'm not an active participant in the development of REBOL 3, I don't have access to the information flow. This cuts down the noise the actual, active developers need to deal with, and the promise of new, open AltME worlds once 3 is released all makes sense.
As I was waiting looking in from the outside, I took a quick look around the REBOL sites and found (from here) the alpha is available. (scroll to the bottom of the blog entry to get the link). Kudos to the REBOL 3 team! (and many thanks too!)
As I was waiting looking in from the outside, I took a quick look around the REBOL sites and found (from here) the alpha is available. (scroll to the bottom of the blog entry to get the link). Kudos to the REBOL 3 team! (and many thanks too!)
04 January 2008
Sun's Lively Kernel - Old Tech Refresh
Sun ( I used to work there for many years) has a Labs project called Lively Kernel which builds on old OO technology that is very advanced compared to much of what is out there today. The heritage is Self, Morphic and Squeak. Self is one of the best unknown languages ever....from Sun Labs who has taken this early 80's language and updated it a few times this century. Lively Kernel takes these advanced OO concepts and blends them with JavaScript for a very rich internet Web 2.0 solution.
Self is a prototype-based with traits language. Very different. Follow the Self link above for more info on the language and actually download it (if you don't have a Mac OS X or Solaris SPARC(tm) machine, oh well, but you can read about it. If you are a smalltalker or squeaker, it will be interesting for you!)
It is great to see these concepts refreshed for the Web, where hopefully many developers will find value for the mainstream.
Self is a prototype-based with traits language. Very different. Follow the Self link above for more info on the language and actually download it (if you don't have a Mac OS X or Solaris SPARC(tm) machine, oh well, but you can read about it. If you are a smalltalker or squeaker, it will be interesting for you!)
It is great to see these concepts refreshed for the Web, where hopefully many developers will find value for the mainstream.
Native Web Apps
Here is an example of taking Web Apps native on the Mac. Its called Fluid. It uses a concept called Site Specific Browsers (SSBs) to run web apps as separate desktop apps. A bit of an inverse to what I was describing in my last blog entry. It requires Leopard which I have not had a chance to migrate to :( So at least I can take my Web apps native, now I need a tool or framework to make lightweight native apps that work like Web Apps!
Another interesting project that I have used in real life (and been following for a long time) is for Java (the .Net version is lagging), is Naked Objects. Your domain model objects (POJOs) are reflected to generate the UI which is user customizable. The Model (that contains behavior) is used to generate the View and Control. Works great for internal apps for knowledge workers that know their domain. You can easily switch from client app to web app. It has come a long way. Very RAD! A good framework to have in your Java toolbox.
Another interesting project that I have used in real life (and been following for a long time) is for Java (the .Net version is lagging), is Naked Objects. Your domain model objects (POJOs) are reflected to generate the UI which is user customizable. The Model (that contains behavior) is used to generate the View and Control. Works great for internal apps for knowledge workers that know their domain. You can easily switch from client app to web app. It has come a long way. Very RAD! A good framework to have in your Java toolbox.
Rich Internet Applications: They're Great! But Not Enough
The Rush to the Web is really amazing. Google Apps, gadgets, Yahoo pipes, and a plethora of RIA (Rich Internet Apps) technologies are making great strides in making the Web experience as rich and powerful as native, local applications. This is great if you live in technology metro-centers where you always have a connection. Without a connection, you are out of luck. There are a few people out there making the Web experience work offline...which begs the question: If I'm working offline, why am I using Web apps? There are many good reasons to do this, for me the most important is seamless user experience: there is little visible difference from working online vs. offline other than the obvious lack of connection.
Still, there is the contrarian curmudgeon in me that says there is something amiss with this. And, as a P2P practitioner there is another model. Smart apps for the local machine / OS...or Java, etc., if you want cross platform. Why not use the power of the local application environment with all the look and feel comfort of the local OS not to mention the computing power of the local machine. I have a tough time making this case for Windows, but it certainly works for UNIX, Linux, BSD and most especially for the Mac. I mean, I paid top dollar for the Mac experience and now I'm limited to what I can run in Safari? Not enough, thanks.
My Macs, combined with a .Mac account provide what I need and want to use. What I want is an easy way (dev tool) to mash-up (and consume, process, apply logic, etc.) data from various sources across the Web and my local machine / machines on network (ala Bonjour) using an easy-to-create native UI toolset for Mac OS X.
Still, there is the contrarian curmudgeon in me that says there is something amiss with this. And, as a P2P practitioner there is another model. Smart apps for the local machine / OS...or Java, etc., if you want cross platform. Why not use the power of the local application environment with all the look and feel comfort of the local OS not to mention the computing power of the local machine. I have a tough time making this case for Windows, but it certainly works for UNIX, Linux, BSD and most especially for the Mac. I mean, I paid top dollar for the Mac experience and now I'm limited to what I can run in Safari? Not enough, thanks.
My Macs, combined with a .Mac account provide what I need and want to use. What I want is an easy way (dev tool) to mash-up (and consume, process, apply logic, etc.) data from various sources across the Web and my local machine / machines on network (ala Bonjour) using an easy-to-create native UI toolset for Mac OS X.
The closest thing I've found to gather the data is RSSBus Desktop. Unfortunately, it is .Net centric. It also doesn't offer a native UI builder either, which is what I want...for the Mac.
A prime example of a rich local application that works connected or not is iTunes. Many Widgets in OS X work the same way. I can build my own special client-side apps using Xcode but that is more heavyweight ( a real programming IDE ) than what I want and need for simple apps. So, how do you build local client UI applications for Mac OS X without Xcode that can mashup data sources using a lightweight Web 2.0 toolset approach? If you know of any tools (preferably open source!) please let me know!
Web 2.0 web-based rich Internet applications hosted on remote servers are fine and valuable but I also want something richer and more native to my Mac that takes advantage of my investment in my local machines. I want it all!
A prime example of a rich local application that works connected or not is iTunes. Many Widgets in OS X work the same way. I can build my own special client-side apps using Xcode but that is more heavyweight ( a real programming IDE ) than what I want and need for simple apps. So, how do you build local client UI applications for Mac OS X without Xcode that can mashup data sources using a lightweight Web 2.0 toolset approach? If you know of any tools (preferably open source!) please let me know!
Web 2.0 web-based rich Internet applications hosted on remote servers are fine and valuable but I also want something richer and more native to my Mac that takes advantage of my investment in my local machines. I want it all!
Subscribe to:
Comments (Atom)