Why isn't there higher penetration of Adobe Flex or other RIAs? [closed] - ria

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 12 years ago.
I'm building a web app and starting to feel the pain developing slick UI features -- I tried iPhone/Android programming and it's so damn simple. Why is it that everyone still settles for the hacked-together tools that comprise web programming, instead of gravitating towards RIAs?
I want to program the app with an RIA but...the most popular websites are suspiciously not using them.
Thanks!

There's a couple of drawbacks to RIA... I'm mostly speaking to Flash/Silverlight and the like, as Ajax RIA is a bit different. The drawbacks:
Vendor lockin... once you develop a platform using RIA you are locked into whichever vendor supports the RIA. You are at the mercy of their support, upgrade paths, etc. Using standard web technologies you won't fall into this.
Search engine indexing... Search indexing of RIA is relatively new, so there might be issues getting your content known.
Performance/interoperability issues... Everyone knows about Apple's rejection of Flash. Writing your web application adhering to the standards guarantees your application is accessible to any standards compliant browser. A company like Apple can't just pull the plug on you.
Accessibility issues... It might not be as easy to program for 508 compliance using Flash/Silverlight as it would be with plain-old HTML. 508 compliance is a must for any big website.
You mentioned phones... (Android/iOS) Obviously people don't target mobile phones using Flash/Silverlight for the aforementioned reasons. For phones, generally it makes more sense to create a mobile application as you get more native features then you would if you were creating a mobile website. However, creating a mobile website requires you to write your application once whereas you would need to write your application for each phone you wish to target if you went the mobile application route.

Flex feels slow and non-native.
RIAs running on the desktop generally have to feel native on at least two very different operating systems. You then have to deal with issues on the users machine and the whole nightmare of versioning and upgrades. Web apps only have to work on your server configuration.
RIAs running in the browser feel even slower because all that slickness has to be transferred to the client. They also break the way people expect websites to work.
They are useful for some applications, but normal HTML/JS/AJAX serves most web applications better.
Phones are a different environment entirely and make more sense for the RIA model in many ways.

Related

New technologies (CouchDB, Node.js) for first major website [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
So it's my first time actually making a website and hosting it online--most of what I've done has been tutorials and class work. Now a friend and I want to make something professional and maybe evolve into a business.
1.) I want to be planning long-run but am kind of afraid of being committed to something I have rudimentary knowledge of. What do you think about starting with these technologies (CouchDB, Node.js)? The long-run goal is that it will be social networky and use search, hence noSQL. Will be using Linux + RoR. Node.js is still a bit elusive to me though I've read a lot about it.
2.) Do most web hosting services support these technologies or do I have to find specialized hosting services or host them myself?
3.) What about Cloudant and Nodejitsu/CloudOne--should I consider using these? Other suggestions much appreciated.
I would most certainly recommend a well established PAAS provider. Like maybe Heroku or AppFog. They will make sure you only have to worry about developing your next cool app rather than being a sysadmin.
Heroku also supports deployment by git which is nice. Another big advantage is If your application actually kicks off and you need to scale, scaling with these PAAS providers is often as simple as playing with a few sliders!
1 . There are a lot of noSQL databases available MongoDB and CouchDB are pretty good. They have good documentation. But make sure they fit your exact need before choosing either. RoR is again a great framework. Notably used by twitter. And of course leave the actual server administration to PAAS providers!
2. Checkout Heroku or AppFog. Both of them support RoR and are well reputable with good documentation and community available.
3. I would recommend using Node.js if you plan to build an app which handles a lot of concurrent connections. Like a chat app for example this is basically where Node.js shines.
And finally, Don't think too much into what the hip technologies are. Choose what you are familiar and comfortable with. And most importantly choose what fits your exact need.

Is node.js too much for a magazine/news website [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I know node.js can build web apps that run super fast, but I just can't find enough info about how it would perform in a magazine or news style website. I know some CMS's like Joomla or Drupal (or even wordpress) are very good at it, but as the number of users grow, I'm seeing some performance issues. Naturally, the web server count but as I want to host it in the cloud, I guess working with node and just create a simple CMS based on it would suit the needs for a better user experience once many users can log in and do their social stuff parallel to the main side of the site that is just a news and reviews site. Does any node.js coder knows about it?
Agree that this is rather subjective, but that said having some experience with node I don't know that there is any particular advantage to using it in this instance. I think frameworks like Django (Python) and Rails (Ruby) are more or less built to accomodate this type of use-case and assuming you have PHP experience but not a lot of node experience, would likely be easier for you to build and deploy a working CMS with very quickly.
Based on what you've described I don't know that any of the advantages of using node will be particularly relevant, and it's unlikely that using node instead of any other modern framework and web server will have a huge impact on your site's performance.
I think this question is quite subjective, as the performance of any application written using modern and maintained languages will depend mostly on the skills of the developer(s), and if your website reaches a certain scale it will not depend only on the language but also on the architecture of your distributed system.
Some of the usual strengths of node are that it is event driven, single language for front-end, back-end thus developer integration should be easier. It's event-driven model gives it a nice and easy(subjective!) way to write and understand (for new devs) applications that make heavy use of concurrent operations such as data-intensive operation across distributed systems.

Are there any decent open-source multi-tenant CMS's out there? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
We're looking for a CMS that we can use as the basis for a new product we're rolling out.
As it's principally a content based thing, we need to base everything on a CMS, but there's a few things we need:
As we're supporting tens - hundreds of users, we ideally need a multi-tenant CMS (single shared code base), that can support different designs per site
As we're selling in functionality, we need something that will let us deploy a new 'module' and switch it on/off on a per site basis
We prefer stuff that is open source (PHP or Rails, that sort of thing)
Before I consider building something, is there anything out there that's any good?
Now I am biased, but dotCMS 1.9 is a flexible open source solution (java) that was designed to make running tens or hundreds of sites within a single instance easy. You can create site "templates" and use them again and again as needed them. Sites can share content, assets and templates, or not share anything depending on how you set them up. Users can have access to manage one site or many sites - their views into the management tool are limited by their permissions (as you'd expect). Again, I obviously am biased as I work for the company, but this is exactly the problem that dotCMS 1.9 was designed to solve.
Plone sounds like it'd do what you want.
It's written in Python, on top of Zope, and supports multiple distinct sites (with distinct and/or shared users, groups, styling). Extra functionality is added through 'products'; there are a number of Free extensions and it's quite easy to write your own too.
We use http://www.alfresco.com/ ...seems to fit your definition . Different designs per site can be achieved with what they call "web scripts" . It supports deployment and branching infrastructure that you can leverage to for your different clients
As we're supporting tens - hundreds of users, we ideally need a multi-tenant CMS (single shared code base), that can support different designs per site
My first thought when I read that was WordpressMU (perhaps with Buddypress if you need groups, etc?), but it might not be "CMS" enough for your needs... you don't elaborate on which features of a CMS you are looking for (media management, workflows, etc), so it's a bit hard to recommend one.
DotNetNuke supports multi-tenant operation, and has a fairly active marketplace for add on modules, skins etc. It has pretty well defined module development interfaces as well.
Yanel is a Java/XML/XSLT based CMS (Apache 2.0 license) designed for multi-tenancy and one can run arbitrary many sites inside the same Yanel instance, whereas see in particular the documentation on 'realms'.

multi platform languages on the rise (desktop)? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 13 years ago.
I am currently working in a .Net project but from university I have also a good background in Java. Recently I am asking myself, if multi plattform languages (like Java, or VM based like Scala) aren't on the rise?
Lets have a look at Suns WORA write once, run anywhere principle, which had been rephrased to write once, TEST everywhere because in the past especially desktop applications were/are still a Windows domain. But the last years there were quite some changes like
Linux has improved hugely in driver support and usabilty
Mac OS is getting even more popular
native look & feel thanks to SWT/JFace for Java
Rich Client Frameworks (RCP and Netbeans) that save a lot of time and provide rich experience
So, creating applications targeted on multi plattforms should be a reasonable way to go. For example, why should a small/mid-sized company pay a lot of money for windows/mac when it can use Linux (honestly, when you are not a gamer you dont need windows ;) ). And of couse then those companies would prefer software that runs on their machines (maybe the CEO a has MAC because he can afford it but needs the same apps.) Eclipse RCP can provide for example and then it really is WORA.
I like working on C# right now, but in 1-2 years when I want to have my own little company I will use Linux and the development will probably focus on what I've just written. I just wanted to know what others are thinking (maybe I change my mind).
Please don't start a war on Linux vs. Windows vs Mac (I use the first two). Its only about if multi-plattform is a good way for the future, or if you gain more by the advantages of a single platform (special features).
I work for a Qt consultancy company that's been writing multiplatform applications for a few years and I work on KDE's port to OSX and previously at a company providing a client for Windows/Linux/Mac.
The obvious benefits you get from supporting multiple platforms are:
Goodwill from niche communities (including blogging, word of mouth support)
Your developers can work on whatever platform they like so you can recruit them more easily
Your application will probably be slightly less buggy as you'll be testing on multiple platforms
The downsides:
Packaging/distribution/support becomes a big of a pain
Some platforms can get easily neglected
You don't tend to hook into the backend features of the OS as well
If writing a GUI application then you tend to end up with something that doesn't really meet the HIG of any platform unless you have quite a lot of platform-specific tweaking or have a toolkit that helps with this (e.g. Qt)
I still think it's worthwhile and agree with you that it's the future of applications. Really, there is enough good, high-level technologies that there's no need to limit your market to a single platform's users and Linux is a huge in emerging markets so being able to run your application there will be more and more important as time goes on.
Cross-platform solutions I've seen used to good effect:
Adobe Air
C# (with .NET or Mono)
Qt
Java
Web applications (obviously)
Yes, this is happening, but it's a very slow process.
You can trace the trend back to the UCSD Pascal P-system from the early 80's. In the 90's we got the JVM, and in the naughties we got the CLR. These newer VMs each support many languages from third parties. Python, for example, has long had its own VM, but also comes in a version that runs on the JVM, called Jython, and another one that runs on .NET's CLR, called Iron Python.
Other VMs exist that are targeted by multiple languages. The Parrot VM was created initially for Python and Perl 6. The Reia language runs on Erlang's BEAM VM. I'm sure there are other examples.
On top of that, there are many languages that have been cross-platform for a decade or two, like Smalltalk, early versions of Perl, Ruby, etc.
This is all a kind of long-term tectonic shift. It's driven by the fact that computers are getting faster, while many tasks we use computers for don't need to get faster. So, we can use high-level languages to write programs to do these tasks, where it wouldn't have made sense in the past. In the early 80s, the successful new word processors were written in assembly language. In the 90s's, C. Today, Javascript.
Check out mono http://www.mono-project.com/Main_Page if you like C#
Use SWT (http://www.eclipse.org/swt/) if you prefer java
YMMV
If you are going to spend hundreds of thousands (or millions) of dollars developing an application, it makes sense for it to be capable of running on as many machines as possible. Just a few years ago, platforms had many platform-sepcific features, but that distinction is rapidly disappearing with the availability of cross-platform compilers like Mono.
All depends of the activity domain of the software that you develop...
If end users are or plan to use multi-pateform so you must care about it ! If not, you can develop on the plateform used by your customers !
Of course, some peope would say : even if all customers are on Windows, the development is more productive on MacOS... but it's an other question !
In general, your users will generally prefer an app that looks and behaves like a native application. Many of the cross-platform frameworks are really very good at emulating the native look and feel. Just be aware that if your app doesn't feel native (maybe through some quirk in your toolkit of choice), critics will beat you over the head about it forever.
Also, The issue of using cross-platform toolkits really depends on the application domain you're targeting. For example, if you're working with video, creating a cross-platform app with a good user experience is very, very challenging. On the other hand, CRUD (Create-Update-Delete) apps commonly used inside of enterprises are excellent candidates for developing with cross-platform languages/toolkits.
Also, one reason that Java is very popular for applications deployed inside of enterprises is the ease with which you can deploy updates (via Java Web Start - I think C# has a similar update technology too). However, once you step outside of the walls of the business most users will shy away from Java Web Start apps.

How some developers move from one platform to another? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I have noticed some developers picking up new skills and moving from one platform to the other? How do they do it? How do they justify for the lack of experience in the said platform they get the job?
Is it based on relevance to their previous experience? do they get certified in the target platform and work at a junior level accepting a pay cut? is it simpler if you are into contracting/consulting? Or is it simply a matter of projecting the resume correctly?
Actually, a lot of seemingly different platforms are really very similar, if you understand what goes on "under the hood," as it were. Though I've barely touched a Microsoft platform for well over a decade, for example, I have little difficulty developing things there because deep knowledge of computer systems in general is quite transferable.
For me, moving from LAMP to .Net was a work necessity. The consulting company I work for needed a PHP guy right away which is how I got in, but that project completed abruptly and they did not have an PHP work on the horizon.
In the closing weeks of the PHP project, I took an online O'Reilly course in C# and worked closely with a more experienced developer on a Windows application for the same client. Once the PHP gig completed I was able to start right away on a .Net project and I've had .Net clients ever since.
The key for me was flexibility. I let my employer know immediately that I was interested in different technologies and platforms and have taken the initiative by requesting access to courses and taking advantage of our yearly book allowance to explore different areas. When opportunities arise for investigating new directions like Mobility (PDAs, specialty devices and tablets) I jumped at the chance.
If your employer doesn't have policies which promote this type of self-directed expansion, then try to build a type of application you are familiar with in a new platform. Once you have you have a decent grasp of the tech, get involved with open source projects in your target platform and look for paid outside opportunities (i.e. Craigslist, elance, etc.) while you are still learning.
Most likely it is a result of circumstances. In these touch economic times being able to move outside your comfort zones is crucial
I really haven't seen a lot of reluctance on anybody's part to put developers on platforms that are new to them. Changes in computer language tend to be far more worrisome to managers than platform changes.

Resources