web development framework - Javascript

tjoseph833 used Ask the Experts™
Hi, am about to begin a startup web development project and looking at the wealth of Javascript frameworks and APIs ... its daunting and  overwhelming. Am coming from C# and .NET development background last couple of years ... the last time I delved with web development was 8 years ago with basic php, python and core Javascript only.

So some basic questions for those with recent web development experience:
1. build systems - grunt or gulp?
2. is bootstrap still the best frontend page dev for multiple devices ?
3. Sass or Less??
4. framework - backbone, angular, react or ember?? do I even need one?
5. need for dependency management (i.e. browserify)??
6. why node.js?
7. mongoDB vs MySQL?
8. best IDE for all the above javascript web development?

Thanks so much.
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
RobOwner (Aidellio)
Most Valuable Expert 2015

There are pros and cons to all you've suggested but one thing I do know is to keep it simple.

Every one of your questions is completely dependant on your project and who is coding it.

Without knowing your project, I can only answer a few of your questions.  And this is going to be the case across the board with the experts.  I suggest to break all 8 questions into separate questions on EE.  You'll get more action from the experts and you'll get a more comprehensive view of the technologies available.

It's completely subjective what IDE I use as is many of the technologies you've listed.  I don't mean to be non specific here, I just think you'll get the best possible answers from splitting this one into 8.
Analyst Developer
1. Gulp, Grunt is more difficult to configure and you waste more time to do the same.
2. Depends of your application, but Bootstrap is still one of the best.
4. Depends of your knowledge of JavaScript. In my opinion, the best is Angular, but all the frameworks that you mentioned are good enough. Take a look, and decide which one fit better with your project and you're more comfortable.
5. This is practically obligatory.
6. I cannot answer that. You must select the programming language that better fit with you're project.
7. Same answer, depends what's your project about. If you need have your data normalized and in a classic structure, MySQL. If you have "flat" data, MongoDB
8. In my opinion, the best IDE is webstrorm, but is not free.
My 2 cents worth:

      Model    View    Controller

Is your data model defined? If so then use the database you already have and know, provided it has a JSON output capability. Otherwise you have three choices : Disparate data - which is my case - use an XML database like eXist which serves up JSON. Conventional record data with search requirements - use an SQL database . Objects - then Mongo. All three must serve up JSON. It is important to know your data and not to have to transform it server side to fit the client.

I always write an XML Schema for my XML data, which servces as reference and as docuemtation.

The View and Controller are client side. This will access the data by a REST type interface. The choice I made for Angular was based simply on its popuarity. Over JQuery it has two way binding, there are lots of books on it (I bought four) and masses of tutorials and importantly open source widgets and the like. When I find I have a problem a Google gives me almost always an answer. That is why Angular with Bootstrap is the best combination. If Bootstrap cannot handle some device, it is a safe bet that somewhere somebody has a fix for it.

I set up app up with Yeoman, which saved me some time and for some unknown reason I ended up using Grunt. But the configuration remains a mystery to me but I couldn't care less, because when I needed to add something, somebody posted what I needed to change. Gulp apparentlly is simpler but I don't believe in messing around with such things.

I use almost exclusively open source components installed with Bower. When one doesn't work properly I just install another one. Bower will keep these up to date from GitHub which is another advantage.

I also enforce, via Grunt, project standards, like standard filenames, or JSCS to enforce coding standards. Although it's currently only me, you never know what will come afterwards. This entry and the related blog have lots of tips http://glebbahmutov.com/blog/tightening-project-with-grunt-build/

I build the app with grunt build and serve it via Apache, so I don't use node directly. Nor have I bothered with SASS or LESS. For the moment I use things straight out of the box.

For an IDE I simply use Notepad++ which is free. But I'm sure there are much better editors around for that. But like I said, I try to use standard prebuilt things everywhere.

As to my project I started in March completely from scratch. I have built an Angular App which translates into four languages, performs searchs on data held in eXist XML database, but via ElasticSearch - which gives much better search capabilities than eXist. It handles simple, advanced, phonetic and fuzzy searches, with facetting, type ahead autocomplete, term suggesting, pagination and search result linking. This includes setting up the eXist and Elastic databases, writing XQuery triggers to load Elastic as well as my day job. What definitely helps is doing things the way everybody else does.
Ensure you’re charging the right price for your IT

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden using our free interactive tool and use it to determine the right price for your IT services. Start calculating Now!


Thanks for all the great advise.

Can you guys comment on Dojo vs Bootstrap vs JQuery? The application am building will require mapping tools and functions that is built on Dojo - https://developers.arcgis.com/javascript/

Am dabbling a bit on bootstrap and angular for a few weeks now ... kinda smooth learning curve, displays well on multiple devices and fast developing with them. Not really sure if Dojo is any better ...

Using Brackets for IDE. Added some extensions - Beautify and JSHint. Quite like it ...
RobOwner (Aidellio)
Most Valuable Expert 2015

If you're using angular and bootstrap forget the others.

I personally use knockoutjs, instead of angular. Take a look at my article if you want to see it in action and I also make comparisons



Does anyone know when Angular 2.0 will be out? I read some blogs its a complete re-write. Should I wait to implement Angular?

Anymore insights on this would be great ...

I suspect not until March next year, but I could be wrong. There is a lot written about it, which also includes the type of changes one is to expect. Most importantly $scope disappears being replaced by "this", which ties things much more closely to the controller. If you are not expecting to do some really difficult things, say mostly serving up web pages with JSON data and writing them back into a database like Mongo, I wouldn't bother about the changes that 2.0 will bring. I most certainly am not. I'm still on 1.3.

I'm using PHP and MySql PDO drivers.
Bootstrap and jQuery is definitively still very popular.
Bootstrap 4  switched from LESS to SCSS
jQuery can be enough, Angular is a plus.

Also I recommend to read article about security
Most Valuable Expert 2013
Awarded 2012
Just my 2ct:
I would code in TypeScript and Angular 2. Yes, it is a full rewrite, and yes it is still Alpha, but it is cleaner and less performance haunting than Angular 1.4.

And with TypeScript you will avoid quite a few common JavaScript issues (type safety ...).


Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial