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 9 years ago.
I've read some interesting articles and comparisons on JavaScript MV* frameworks and I do know outline of architecture of most popular ones (Ember, Backbone, Angular) However as a PHP programmer (and Symfony 2 lover) who wants to learn one of those in detail, I am concerned if Meteor (my first choice) is flexible enough to be considered a full stack framework so I can abandon server side (eg. PHP) entirely on most basic apps. Until today I thought that PHP + Angular give more possibilites (although it's more time consuming to maintain both server and client side), however I'd like your opinion on that. From what I've seen in meteor's screencast, it seems pretty awesome.
As many people have mentioned, server-side JS would replace the function of PHP completely. But Meteor is much more than that; it allows you to replace your imperative code with declarative code. Meteor takes care of synchronizing the data and you just decide how to render it. No more passing around messages through AJAX. As one article put it, Meteor has made MVC obsolete.
In my experience with meteor, I'm developing a project and reading the book. What I've been able to do with Meteor in a short time has completely blown my mind. Combined with some excellent frontend frameworks such as bootstrap, I don't really have to do any CSS work either (if I don't want to), and that means I can develop without worrying about styling or AJAX, essentially freeing up my time to create awesome applications with very little legwork.
Besides, as they say, it only takes a weekend to try Meteor out. It's not complicated at all if you have JS experience. However, as it took me a bit to understand, it's not necessary to think with MVC anymore. It only took me a couple of days to build my first meteor app so I suggest you try it out!
Related
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 had asked a question previously regarding the use of Javascript or Ruby on Rails for the development of web apps and got some very good advice from maerics which basically boiled down to Javascript for Frontend/Smaller apps, RoR for service-side/larger apps (Groupon scope).
After a little digging however, I found out about Node.js and Express.js So my decision is basically back at square one.
I'm looking for a language I can use to take an idea to a functional stage (again, the scope is something like Groupon or Twitter). I am an absolute beginner. I know HTML/CSS and a little jquery, but that's about the extent of my knowledge on web technologies.
I've heard about RoR being very easy to learn, or at least pick up, and has a lot of community/support. But Javascript is everywhere, and can be useful for more than just large scale web apps (and I'd be using it anyway if I used RoR), though is far more complex. Seeing as I have no experience in either, I thought I should pick one now and stick to it for the next ~6 months and see how I go.
But can anyone recommend which one to go for?
When you asked about Javascript and RoR in your previous question, you effectively asked about Node.js and RoR.
If you are building a commercial/enterprise level application, stick with RoR. There are way more resources, bigger communities, relatively stable releases, and you can easily find good developers with RoR experience.
Express.js is like Sinatra for Ruby. Neither is as advanced as Rails, preferring to be more 'basic' and providing a minimal feature set rather than try to be an 'everything at once' framework that Rails is.
Right now, Node.js is rapidly changing its API, still has not hit version 1 and hard to find developers for(you often get people claiming they know node and have 1 year exp with it, when they actually mean they have 1 year exp with client side javascript). Besides, for 99% of the web's purposes, RoR will suffice. Most people only use Node for their pet projects, for testing out the next generation of super dynamic interfaces or websocket integration with Socket.io. If you just want to build an application for commercial purposes, use RoR.
As for difficulty, when you start out, Rails will be a bit magical, it does so many things under the hood, you'll have a little bit of difficulty doing something that doesn't already have a tutorial. But look through the source code of some popular gems or even rails itself, and you'll be up to speed in no time. Ruby is an amazingly simple and beautiful language, and you'll find it simpler and probably more fun than javascript.
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.
The last couple of years I've spent working in Flex. Before that I've been building web applications in vanilla JavaScript.
Today I'm switching back to JavaScript but now I'm having trouble in choosing the right JS framework/library for a new medium-size project.
Although all the comments on AngularJS have been positive, I found that getting started with it is not an easy task. The problem is of course the documentation. Although there are tutorials which show you how to do the basic stuff, none explain the concepts or show you how one might structure larger projects.
Before discovering AngularJS I had my mind set at Backbone. The positive side is that there are loads of documentation, tutorials, screencasts, books on the subject. In addition the source code is small and can be used as a reference itself (unlike AngularJS).
So now I'm thinking that Backbone might a better choice for someone who's getting stared with using frameworks in JS programming than AngularJS. Later on, when I manage to train my brain to think in JS, AngularJS might be easier to understand + there will be more documentation available.
I'm now in doubt if that's the right path to choose...
First of all, I'm pretty sure that switching to JavaScript was the right choice.
Selecting a JavaScript MVC framework is indeed a difficult choice, especially because they're popping like popcorns everywhere!
This project might be very helpful regarding this decision: http://addyosmani.github.com/todomvc/
Here is my point of view. Backbone is liberal. It does not impose a rigid structure. It is more a set of conventions than actual code. You will certainly be using something more than just the Backbone framework. This can be challenging, but may result in a better tuned result. Backbone is very extensible by nature, which is a great advantage.
AngularJS augments HTML semantics. Just by saying this you can imagine that it is something much more complex than just "pure" Backbone. Perhaps we may find AngularJS a bit more magical (not magical of course, but things happening with less code, "under the hood", I mean).
They have very different approaches to the problem.
I'm not going to state here every advantage and disadvantage of each one. The link I posted should help you on that.
I too was confused like you, but in short, investigate both, make some spike implementations with both, and check the todoMVC project. Choose wichever suits better your requirements and even personality. :)
A much more fairer comparison could be "Backbone and friends" vs "AngularJS". Don't forget Backbone's friends (plugins and modules).
You can do great things with both.
I've been there past few days. I've implemented a simple CRUD over REST api in both frameworks. Here are my thoughs:
Angular is harder, because it's convention over configuration, new concepts like directives and such, you need to think with extending HTML instead of javascript hacking (which can be not that difficult for flex practitioners).
But in the end I prefer it because it does more than backbone out of the box. You don't need to write jquery stuff. The templating is way more readable than using Backbone and underscore templating. There is less code (easier to maintain), and I like the way I can have a component approach for structuring my clientside code.
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'm trying to decide between Sencha Architect 2 and Wavemaker. They both seem very similar. Of course Wavemaker is completely open source, and Sencha is only partially open source. For this reason I'm leaning towards Wavemaker, but given the learning curve with either, I'd hate to find myself with less options later on, just because I tried to save some money. Here are my main concerns.
1- I want to be able to sell my application without giving away my source code.
2- Productivity of course is paramount. Are they both about the same?
3- Database development tools.
4- Easy of deployment and hosting options.
Opinions either way are much appreciated.
wavemaker is for me best tool for now..
1.on javascript can use some tools for obfuscate code
2.WYSIWYG..visual tool with cool ajax widgets drag and drop and offcourse all free
3.have is model part for can create your db
4.cloudfoundry
Full disclosure: I work for VMware on WaveMaker.
I felt compelled to correct a few things from Rene’s post. WaveMaker is not strictly a backend framework. WaveMaker is a visual, drag-and-drop development tool. Applications created with WaveMaker contain a backend framework (Java, Spring) and a frontend framework (JavaScript, Dojo). Developers enhance their UI by writing JavaScript code.
The comparison to GWT implies that UI development in WaveMaker is done using Java. Although Java is part of the WaveMaker framework, developers do not use Java code to enhance UI functionality. The back-end code is Java, which is used to access databases and other backend services. In most cases WaveMaker developers do not need to modify the Java code. Since WaveMaker produces standard Java/Spring applications it’s easy for a Java developer to extend the backend functionality.
This question doesn't make much sense to me. Are you comparing just the IDE-s?
Anyway, your options look like very different things. One is primarily a front-end framework and another one a back-end framework. One produces Java apps, another one JavaScript. Maybe you should compare Wavemaker against Ext GWT instead, which is Java-based.
Given your point 3, your choice should be straight-forward as there are no database development tools in any of those Sencha front-end development tools that you seem to be referring to. There might be something in Ext GWT, but I'm not at all familiar with that.
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 will develop a commercial web application based on PHP and MySQL database.
Now, I'm guessing about the JavaScript framework. I find several interesting frameworks like ExtJS, JQWidgets or DHTMLX.
Some of their components can be tested here:
ExtJS
JQWidgets
DHTMLX
However, I don't manage to find a recent comparisons of them.
Could you give me your opinion (advantages / drawbacks) about these frameworks:
Performance on huge data (especialy for grids filtering or sorting)
Licence costs
Compatibility with web browsers
Is it easy to find an information inside the documentation?
Are they buggy?
Usable with SSL connections?
Other points
Thanks.
There's really no other sure way of evaluating than trying them out by yourself. You have to make trade-offs and these hugely depend on the kind of application you are planning to write.
If it's a small app, it might be a good chance to try out any one of them. If it's a large one you better have some experience with all your choices to make an informed decision. It looks you aren't really experienced with none of them - in such case you are in a much worse position as you don't really know what to look for when choosing.
Also, besides the features, there's usability and convenience. All these frameworks involve quite different coding styles. Some of these might be more to your liking than others.
It's hard to help you with such a general question. You need to work it out by yourself. Asking more specific questions and being more specific about your app can help along the way.
I have played around with ExtJS and JQWIDGETS, I do like both, however, thus far I have found JQWIDGETS to be extremely easy and quick and the support provided on the Forum is excellent.
EXTJS on the other hand, is also a powerful product which boasts its architect EDI. But does also make simple tasks slightly difficult and the support/responses on their forums can be very slow or none existent...
At the end of the day, like anything, comes down to personal preference. Good Luck!
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 want to use a JavaScript framework for a complex web application. I have been looking at Backbone.js, knockout.js and JavaScriptMVC. Being pretty new to client side JavaScript heavy web apps, I'm not sure which one to pick. Each one has a pretty different approach to separate the concerns. Model/View/Controller vs Model/View/ViewModel vs Model/View/Collection.
What do you guys think? What are the deciding factors? Which one would be the easiest to pick up? What has your experience been like?
You can't go wrong either way especially if you are building a complex javascript UI. If you choose not to use either, you will likely wind up with a lot of difficult to debug code. I personally like Backbone but they are both lightweight and allow you freedom in your templating language (I use JQuery templates). I think what made me choose Backbone was the way Knockout mixed its components in with your html:
<span data-bind="text: myItems().count"></span>
You may be able to avoid using constructs like the above with Knockout but that was enough to throw me toward Backbone. I also liked the fact that backbone has dependencies on both underscore and jquery which were already in use in my projects.
To build on HostDude's comment - it's a feature, not a bug :) Part of the concept of knockout is that there's a layer inbetween your Controller/Model and the View. This lets us modularize our HTML into small components that include the data mapping.
So yes the JS bindings are mixed in, but they are not mixed into raw HTML - rather they are added to tiny modularized Jquery templates. By adding those data bindings in explicitly at the jQuery template level, we have total control over what's mapped to what -- without disturbing our underlying application data model at all :) I love Knockout!